2011-01-25 13 views
2

ねえ。 PHPでreadfileメソッドを使用する際に心配すべきセキュリティ上の問題はありますか?私はさまざまなサードパーティのサーバーに格納されているファイルのURLを取るreadfileメソッドを使用したいと思います。私はそのファイルをユーザーに提供します。直感的には、URLが任意のファイルを指す可能性があるため、リスクがあるように見えます。一方、私はreadfileメソッド(ファイルに依存しないデータを処理した後)のみを使用しています。これが私のサーバー上で悪意のあるものを実行できるかどうかはわかりません。また、マニュアルによると、readfileのURLを使用する場合は、fopen wrappersを有効にする必要があるようです。ありがとう。PHPのReadfileメソッドのセキュリティ上の問題

答えて

3

readfileあなたのサーバー上でコードを実行しないので問題はありません。

しかし、奇妙な人達はあなたのサーバーを使ってWebリクエストを実行して、不正なリクエストや過負荷の原因となるサーバーをトラブルに陥らせることがあります。マニュアルによると、私がfopenのラッパー

を有効にする必要が ことを私はのReadFileでURLを使用する場合は、

を思わはい、あなたはallow_url_fopenがあることを確認する必要がありますに。そうでない場合は、cURLを使用して調べる必要があります。

+0

ありがとうございます!ブラウザに強制的にURLでファイルをダウンロードさせたいので、ヘッダーを変更します。私はまた、なぜ私のサーバーを通過するいくつかの分析を実行したいと思います。 – Skoder

1

セキュリティ上の最大のリスクは、ファイルからのファイルを提供する不正なリクエストの注入です。つまり、相対パスを渡します。

Allow_url_fopenは、気をつけなければセキュリティ上のリスクとなります。 readfile()、include()などで処理されたリクエストが、リクエストが返された場合にPHPコードを解釈できるようにすることができます。 にユーザーがReadFile関数によって読み込まれるファイルを指定しないようにしてください

1):

1

は、私はあなたがちょうど2つの事に集中する必要があると思います。 (ディレクトリトラバーサル攻撃の可能性など)

2)ユーザーにを許可しないでください。readfileによって読み取られるファイルを変更してください。 (すべての種類のいたずらの可能性があります)

私の頭の上から離れて、私はあなたがreadfileに関して遭遇する2つの最も可能性の高い攻撃ベクトルとして私を攻撃します。

関連する問題