ASP.NET (fw 3.5) サイトを作成しましたが、脆弱性があるかどうかを確認したいと考えていました。
テキストボックスからの入力を受け入れてデータベースに保存し、後で別のページに動的に表示します。
入力しようとすると<script>...</script>
、global.asax が例外をキャッチし、メッセージが表示されます。<
>
A potentially dangerous Request.Form value was detected from the client (TextBox1="<b>
asd</b>
").
次に、これを試しました:<script>$(window).load(function(){alert('hello');});</script>
これは同じ方法でdbに挿入されましたが、ページに<script>$(window).load(function(){alert('hello');});</script>
.
ただし、アラート ボックスは表示されません。スクリプトはページ上にそのまま印刷されます。レンダリングされる HTML は次のとおりです。
<td style="font-size: 16px;" colspan="2"><script>$(window).load(function(){alert('hello');});</script></td>
私の質問は、なぜこのスクリプトが実行されないのですか? つまり、クロス サイド スクリプティング攻撃について読んでいて、自分のサイトを安全にしたいと思っていたので、これは素晴らしいことです。現在はそのように動作していますが、なぜそうでないのか理解できません。このような攻撃を阻止するコードは何もありません。
前もって感謝します。