我被告知要在我的一些银行旧 .asp 页面中找到跨站点脚本 (XSS) 的修复程序。
我对这个主题做了一些研究,但我没有找到我的问题的答案。这是我第一次听说 XSS,也是我第一次看到 ASP(虽然页面只有 HTML),而且我已经有 2 年没有从事网页设计了,所以我非常生疏。
例如,我有这个表格
<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 过滤器,但它不起作用)