1

最近、XSS が私のサイトにとって大きな問題であることがわかりました。ユーザー入力のフィルタリング、javascriptに関連するものを取り除くなど、それを防ぐためにいくつかの対策を設定しました

しかし、最近、javascript を 16 進コードにエンコードして、html img コードで使用できることがわかりました。自分で作成しようとしましたが、XSS 防止サイトでこれを見つけました。

<img src=&#x6A&#x61&#x76&#x61&#x73&#x63&#x72&#x69 &#x70&#x74&#x3A&#x61&#x6C&#x65&#x72&#x74&#x28&#x27 &#x58&#x53&#x53&#x27&#x29>

このコードは JavaScript です。

javascript:alert('XSS');

問題は、このコードが正しく機能していないことです。この種のものが本当に機能するかどうかをテストすることはできません。

これがjsフィドルです: http://jsfiddle.net/CCgT3/

問題は、次のように出力する必要があることです

<img src="javascript:alert('XSS')">

しかし、フィドルは次のようなものを示しています(firebug):

<img &#x58&#x53&#x53&#x27&#x29="" &#x70&#x74&#x3a&#x61&#x6c&#x65&#x72&#x74&#x28&#x27="" src="javascri">

六角に何か問題がありますか?

4

1 に答える 1

3

src 属性のスペースを削除してみてください:

<img src=&#x6A&#x61&#x76&#x61&#x73&#x63&#x72&#x69&#x70&#x74&#x3A&#x61&#x6C&#x65&#x72&#x74&#x28&#x27&#x58&#x53&#x53&#x27&#x29>

その後、動作するはずです。

于 2012-08-15T11:17:19.897 に答える