サイトを作成しました。このサイトでは、写真をアップロードできます。攻撃者が GIF 画像の途中に PHP コードを挿入し、この「邪悪な」画像をサイトにアップロードできるという PHP の記事を読みました。その後、サイトはセキュリティの悪用に対して開かれている可能性があります。攻撃 ..
3 に答える
このリンクは、これを行う方法を非常に詳細に説明しています。
その記事で私が言いたいことはincluding
、requiring
アップロードされたファイルではありません。たとえば、画像をアップロードする場合、スクリプトに画像を含めるのではなく、html で表示するだけで目的の機能を実現できる可能性があります。これにより、内部にある悪意のあるコードが実行されるのを防ぐことができます。
一般的にファイルのアップロードを保護する方法について詳しく知りたい場合は、次の記事も参考になります: http://shiflett.org/articles/file-uploads
著者は PHP セキュリティに関する本も持っており、これも非常に役立ちます。
SO に関するこの質問も役に立ちます: https://stackoverflow.com/a/4167797/1324019
編集: リンクを追加し続けて申し訳ありませんが、役に立つ記事を見つけ続けています: http://nullcandy.com/php-image-upload-security-how-not-to-do-it/
解決策は非常に簡単です。
アップロードされたすべてのデータを検証します。悪意がないことが100%確実になるまで、何も保存しないでください。
これを行う1つの方法は、getimagesize()
関数を使用することです。
ファイルのフルネームをトレースする必要があります。
ただし、注意してください。
たとえば、誰かがこのfoo.jpg.asp、php、exeなどのファイルを作成できます。
正規表現を使用して正しく一致させます。