銀行の古い .asp ページのいくつかで、クロス サイト スクリプティング (XSS) の修正を見つけるように言われました。
この件についていくつかの調査を行いましたが、問題に対する答えが見つかりませんでした。XSS について聞いたのは初めてで、ASP を見たのは初めてで (ページには HTML しかありませんが)、約 2 年間 Web デザインに携わっていないので、非常に錆びています。
たとえば、私はこのフォームを持っています
<form method="POST" id="CH" name="CH" action="http://some_url/some.asp">
<input type="hidden" name="srv" value="1" ID="srv"/>
<TABLE border="0" cellpadding="0" cellspacing="0" width="100%" align="center">
<TR valign="top">
<TR>
<TD align="center">Input something here
<input name="input_something" type="text" class="field-no-fit" maxlength="12" value="">
</TD>
</TR>
</TR>
</TABLE>
</form>
URL(このフォームを含む)を次のように手動で入力した場合
http://this_url/this.asp?1=%22%3E%3Cscript%3Ealert%28HelloWorld%29%3C/script%3E%3Cimg%20alt=%22%22%20src=%22
ページが読み込まれ、javascript アラートがスローされ、エラー画像が表示されます。
私の目標は、ページを開くときにスクリプトが実行されないようにすることです。Server.HTMLEncode について読みましたが、それを使用してページの読み込み時にスクリプトが実行されないようにする方法が見つかりません。
前もって感謝します!
編集:入力の値を「<%= Server.HTMLEncode(Request("input_something"))%>」に置き換えると、少なくとも部分的に回避できますか?
現在、IE6にアクセスできず、他のすべてのブラウザー(IE> 6バージョンを含む)がエラーを回避するため、テストできません(セキュリティタブでXSSフィルターをすでに無効にしていますが、機能しません)