在我们的Web应用程序(WebInspect)中运行安全扫描后,它报告了一些aspx页面存在多个XSS漏洞。跨站点脚本 - 被URL修改的ASP.NET表单动作
请求URL似乎能够更改表单操作。
例,
/Website/somepage.aspx/'+alert(1234)+'
形式动作更改为
action="'+alert(1234)+'"
为了排除我们的应用程序代码中,我试图与默认的新的Visual Studio Web窗体项目,它允许相同的。
这怎么能防止?
我总是被告知未经验证的输入被反映到页面中是坏消息。
参数化变量并清理输入 – ApolloSoftware
这必须与您设置的重写规则有关。 '/Website/somepage.aspx/'+ alert(1234)+''必须提供一个错误页面,而不是将其转换为'+ alert(1234)+'。至少对我来说没有找到错误页面,因为这部分'/'+ alert(1234)+''是url上的一个新文件。 – Aristos
我没有变量来参数化或验证。该url已被添加到aspx页面url的末尾,并且它导致页面在修改了表单操作的情况下呈现。我没有看到输入作为查询字符串的一部分来验证。这完全发生在我的代码的外面。我已确认该行为发生在Visual Studio 2012未更改的开箱即用WebForm项目类型中。 – solidstore