0

シンプルなファイル アップロード スクリプトを使用しています。このスクリプトではファイル タイプのフィルタリングが可能ですが、どのファイルを許可/禁止する必要があるかわかりません。

アップロードされないようにする必要があるファイルの種類は何ですか?

4

4 に答える 4

1

$_FILES で提供される MIME はブラウザから送信されるため、信頼するのは安全ではありません。ファイルの MIME を決定する関数は他にもありますが、それらのほとんどはファイル拡張子に依存していることに注意してください。.exe の名前を .png に簡単に変更でき、関数はそれが画像であると報告するため、これを特定する方法は貧弱です。あなたのニーズはよくわかりませんが、スクリプトを制限して画像ファイルのみを許可し、実際に imagemagick または gd ライブラリを使用した画像であるかどうかを確認できます。

そのままではサーバーにとって危険なファイルはありません。ただし、ユーザー ファイルの実行を許可するセキュリティ上の欠陥がある場合、すべてのファイルが潜在的な脅威になる可能性があります。

一部のファイル タイプを拒否するのではなく、ユーザーがアップロードする可能性のあるいくつかのファイルを許可することをお勧めします。

于 2012-07-06T21:02:25.643 に答える
1

必要なタイプのみを許可する必要があります (ホワイトリスト)。サーバー、php、または人々が作成できるファイルの種類について何が変更される可能性があるか、サーバーに対して何ができるかはわかりません。

型チェックを減らす代わりにセキュリティを犠牲にする理由はないようです。

于 2012-07-06T20:57:35.997 に答える
1

これを見つけました(.htaccessに入れます):

php_flag engine off

これはphpを「オフ」にするため、ファイルを実行できません! 次に、必要なもののアップロードを許可できます

(リンクのペッカに感謝)

于 2012-07-06T20:59:01.630 に答える
0

ブラックリストを作成しないでください。代わりに、許可されたファイル タイプのホワイトリストを作成してください。

于 2012-07-06T20:58:38.417 に答える