ユーザーが画像のみをアップロードできるように、自分の Web サイトにアップロード システムを設置したいと考えています。これらの画像は、アップロード時に PHP によって直接サイズ変更されるため、元の画像は保存されません。悪意のあるイメージから実行される php などのスクリプトについて心配する必要はありますか?
1 に答える
考慮すべき次の攻撃ベクトルがまだあります。
アップロードされた画像はサーバーに一定期間保存され、アプリケーションにバグがある場合は悪用される可能性があります。
画像としてアップロードされたバイトゴミは、アップロードされた画像を読み取るサイズ変更コードのバグを引き起こす可能性があるため、このソフトウェアまたはライブラリを最新の状態に保つことが重要です。
それとは別に、生成された画像は安全であると見なされるべきです。
アップデート:
PHPを使用して画像をアップロードすると、常に一時ファイルがどこかに作成されます。おそらく、共有ホスト上の他のすべての人が使用している未知の「一時ファイルディレクトリ」の場所に作成されます。このファイルにはファイル名があり、悪意のあるコンテンツが含まれている可能性があります。ファイル名はランダムに生成されますが、攻撃者はそれを推測して使用しようとする可能性があります。一方、安全でないinclude / requireステートメントを使用しない以外に、この組み込みのphpメカニズムから身を守ることはできません。通常、攻撃にはa)サーバーで悪意のあるコードを取得し、b)実行する必要があるためです。
それに対する手順は明らかなようです。php専用のアップロードディレクトリを設定します。適切な権限と制限を適用することにより、ファイルシステムレベルでのコード実行から保護します。ランダムな名前の生成を台無しにしないでください。このディレクトリはDOCUMENT_ROOTから除外してください。
2番目の攻撃は、攻撃者がコードをだまして、アップロードされていない非公開ファイルを読み取り、その内容を明らかにすることです。したがって、続行する前に、$_FILES内のファイル名が本当にアップロードされたファイルであるかどうかを確認することをお勧めします。