web-dev-qa-db-ja.com

PHPで「allow_url_fopen」を許可する必要がありますか?

allow_url_fopenサーバーで有効にします。最近の標準は何ですか?libcurlが有効になっている場合、許可する正当な理由は本当にありますか?

環境:Windows 2003、PHP 5.2.6、FastCGI

33
Kev

必ずallow_url_includeをOffに設定してください。これにより、allow_url_fopenの多くのリスクも軽減されます。

しかし、PHPのすべてのバージョンがallow_url_includeを持っているわけではないので、多くのベストプラクティスはfopenをオフにすることです。すべての機能と同様に、実際には必要ありません必要な場合、curlモジュールはおそらくそれを改善でき、curlを使用してallow_url_fopenを無効にするようにアプリケーションをリファクタリングすることで、最小のクラッカーを阻止できます。

17
Daniel Papasian

答えは、開発者が責任を持って機能を使用することをどれだけ信頼できるかにかかっていると思いますか?外部URLからのデータは、他の信頼できない入力と同様に扱う必要があり、それが理解されている限り、大したことは何ですか?

私の考えでは、開発者を子供のように扱い、鋭利なものを絶対に扱わないようにすれば、安全なコードを書く責任を学ばない開発者がいるということです。

20
Sal

開発の種類によって異なります。プロトタイプを作成してから 'allow_url_fopen'を有効にしても問題ありませんが、libcurlとfile_get_contentsの速度に大きな違いはなく、有効にするのは便利なことです。

実動サーバーの場合、libcurlへの呼び出しには、セキュリティー監査のためにフラグを立てる必要があります。 'allow_url_fopen'が有効になっている場合、fopenおよびfile_get_contentsがそうであるように。 「allow_url_fopen」を無効にしても、悪用が防止されるわけではありません。

2
gradbot

クロスサイトスクリプティング攻撃は苦痛であるため、これは反対票です。そして、絶対に " allow_url_include "をoffに設定する必要があります。そうしないと、怪我の世界に入ります。

2
Michael Cramer