6

http://dsecrg.com/files/pub/pdf/XSS_in_images_evasion_bypass_(eng).pdfを読んだ後、ユーザーからの画像のアップロードを許可すると、XSS攻撃にさらされることは明らかです。

アップロードされた画像をXSS攻撃に対してスクリーニングする方法のPHPの例を見つけることができませんでした。

私が使用しているCodeIgniter用のものを見つけました。関数はですがxss_clean($file, IS_IMAGE)、ドキュメントが1文しかないため、どのように機能するのかわかりません。フォーラムのコメントによると、誤検知の割合が不当に高いため、本番環境では使用できません。

アップロードされた画像内でXSS攻撃を防ぐために何をお勧めしますか?

4

2 に答える 2

4

拡張機能を正しく維持している限り(そしてユーザーがブラウザの更新に熱心に取り組んでいる限り)、画像の挿入は不可能です。

たとえば、誰かalert('xss');が画像としてアップロードし、あなたが持っている場合<img src='that-image.png'>、それはpngとして出力され、JavaScriptは実行されません(少なくともIE7に戻ります)。重要なのは、画像の名前を適切に変更することです。

php> 5.3とfinfoPECL拡張子がある場合は、それを使用してファイルのmimeタイプを取得し、許可するタイプのホワイトリスト(png、jpg、gif)を作成できます。Linuxマシンをfile使用している場合は、それも役立つ可能性があります。

于 2012-08-10T17:23:58.200 に答える
0

CodeIgniterには、XSSを防ぐ方法がたくさんあります。-> post('data'、true)のような値を取得するときに有効にできます。2番目のパラメーターはXSSブール値です。

また、HTMLIMGタグは使用しないでください。画像をきれいにし、見やすく、表示しやすくするCodeIgniterを使用してください。

ちょうど私の2セント!

于 2012-08-10T18:11:01.013 に答える