たくさんの記事を読んだ後。ファイルのアップロードによるハッキングの試みからサイトを保護するには、実際に何をすべきでしょうか?
これらのリンクから:
このリンクには、MIME IS USELESSとEXTENSION IS THE WAY TO GOと書かれています。しかし、最終的には 2 つの当事者が議論しているだけであり、私が正しければ、MIME と EXTENSION の両方にセキュリティ ホールがあると言うことに同意しました。そこにたくさんの憎しみがあります。
このリンクは、MIME も役に立たないこと、および EXTENSION もフール プルーフではないということに同意します。HTML または JAVASCRIPT コードを GIF 画像ファイル (またはその他) に挿入でき、IE によって誤って解釈される可能性があるため、悪意のあるコードの迅速なバックドア入り口につながる可能性があります。 (IEの使用を停止するために投票することを本当に望んでいます。ハッキングブラウザとして使用するために作られたようなものです。)
このリンクは、ファイルにNON-EXECUTABLE PERMISSIONを与えて、それが何であれ実行しないようにすることを示しています(ただし、これにより、2番目のステートメントで言及されているような画像に埋め込まれたxss/html/javascript/etcから保護されます? ファイルに実行不可能なアクセス許可を与えることで、埋め込まれた脅威から私たちを保護できるとしたら. それは他の脅威からも私たちを保護するでしょうか? このアプローチを回避できる他の形式のハッキングはありますか?)
そして、 「画像を再処理する」というリンクがありますが、他の方法は「ハッカーにとって退屈で楽しい」だけです。IMAGE が IMAGE であるかどうかを特定する確かな方法のようなものです (IMO、imagick が非画像を正しく変換しないのはなぜですか? よくわかりません。まだ詳しく調べていません)。
では、ファイル アップロードの脅威からサイトを保護するための最善かつ安全な方法は何でしょうか?
すべてを確認すると、次のようになります。
- 有効な MIME タイプ
- 有効な拡張子
- GETIMAGESIZE() チェック
- 非実行権限を確保する
- 画像を再処理する
それで十分でしょうか?SAFE SECURE 画像ファイルのアップロードの場合は?