6

Web アプリケーションをテストしています。XSSalert を表示するスクリプトを書きたいと思い"Hello"ます。

私が最初に書いたスクリプトは次のとおりです。

<script >alert("Hello");</script > 

しかし、アラートは表示されませんでした"Hello"XSS機能するスクリプトは次のとおりであることを発見しました

<SCRIPT >alert(String.fromCharCode(72,101,108,108,111,33))</SCRIPT >

最初のスクリプトが機能しなかった理由を知りたいです。

4

1 に答える 1

8

ほとんどの場合、そのサイトは二重引用符を HTML エンティティに置き換えているか、JavaScript に適さない方法で二重引用符をエスケープしようとしています。使用するときString.fromCharCode(...)は、引用符を使用する必要がないため、機能します。文字列の文字の ASCII コードのリストを取得し、実行時にそれらから文字列を作成します。したがって、引用する必要はありません。

この種の XSS を回避する適切な方法は、スクリプト タグをまったく作成できないように置き換える<こと&lt;です。

HTML を含むデータをサニタイズするときは、ともそれぞれの HTML エンティティに置き換える必要があること>に注意してください。ただし、信頼されていないデータを HTML 属性で使用できないと仮定すると、XSS 攻撃を無効にするために絶対に必要なのは (サニタイズが必要な場所です) だけです。"&<"

于 2013-02-28T12:36:16.590 に答える