質問
私はPHPでWebアプリケーションを作成すると、別のドメインからコンテンツを読みたいのです。
私の主要なオプションがfopen
とcurl
あると思われます。
特にセキュリティと利用可能なオプションに関するこれらの2つの方法の主な違いは、何ですか?です。
URLはhttpまたはhttpsのサイトであれば、は、それが重要ですか?
解決
カールは、外部ライブラリを使用し、その要求のカスタマイズに多くの力を持っている - POSTリクエスト、アップロードファイルを生成し、カスタムヘッダーを。あなたが必要とするすべては私が言わなければならない。
のfopenが唯一ただのさらにカスタマイズすることなく、URLのGET要求を行うことが制限されています。
セキュリティCURLとして(禁止リモートURLとそのようなのはfopenなど)PHPのセキュリティ設定によって影響されない。
両方の可能性はあなたがあなたが望むあらゆる可能な方法で使用できるデータを返します。あなたのプロジェクトのセキュリティホールを作る場合は、データを取得した後、あなたのせいで、すべての後です。
<ストライキ>また、私はかなりわかりませんが、私は関数fopenはSSL(HTTPS)接続を処理することができないと思います。ストライキ>のfopenとCURLの両方のサポートSSL(下のコメントにアンディShellamで述べたように)。
他のヒント
どのようなものですを参照してください。つまりはallow_url_includeはfopen影響を与えるいくつかのセキュリティ設定のためにはfopen($ URL)とカールPHPでですかを使用して重要な違います。
また、ノートということは、カールであなたSETOPT CURLOPT_FOLLOWLOCATIONは、カールのファイルにリダイレクトし、次の場合://(まだopen_basedirの対象)データをフェッチします。 FTPなどの他のスキームへのリダイレクトは://(:// ftpをテストしていない)より悪い可能性があります。そのSETOPTカールせずにすべてのリダイレクトには従いません。 fopenのデフォルトでは302で動作するようですが、唯一のhttp:// - >のhttp://とのないののhttp:// - >ファイル://