我在web.config的HttpHandlers部分设置了一个HTTP Handler,如下所示:
<add path="myNamespace.myHandler.axd" verb="*" type="myNamespace.myHandler, myNamespace" validate="false"/>
PCI扫描突出显示了此处理程序中的漏洞,该漏洞可将其打开以进行XSS攻击。基本上你可以通过查询字符串传递一个标记,并且httphandler将标记直接转换为原始格式的响应 - 哎哟!
我无法访问此处理程序的源代码,因此我一直尝试使用带有以下标记的asp.net来关闭此漏洞:
<location path="myNamespace.myHandler.axd">
<system.web>
<pages validateRequest="true">
</pages>
</system.web>
</location>
然而这不起作用。查询字符串未经过验证,标签仍在通过。
我正在使用asp.net 3.5运行IIS7。
有人可以帮忙吗?
干杯, 专利
答案 0 :(得分:0)
据我所知,没有简单的方法可以使用配置设置为asp.net 3.5中的通用http处理程序启用请求验证。然而,.net 1.1中引入了一些validation methods,我相信(不是100%确定这一点)与默认请求验证中使用的标准相同。
4.0 introduced全面默认请求验证,并可选择恢复为2.0设置。
我认为你有两种选择: