1

我在 web.config 的 HttpHandlers 部分设置了一个 HTTP 处理程序,如下所示:

<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。

任何人都可以帮忙吗?

干杯,帕特

4

1 回答 1

0

据我所知,使用配置设置在 asp.net 3.5 中启用通用 http 处理程序的请求验证没有简单的方法。然而,在 .net 1.1 中引入了一些验证方法,我相信(不是 100% 肯定)与默认请求验证中使用的标准相同。

4.0全面引入了默认请求验证,并可选择恢复为 2.0 设置。

在我看来,您有两种选择:

  • 在代码中的某处手动处理验证
  • 升级到 .net 4.0 并获得默认请求验证的好处
于 2011-05-03T18:02:50.327 回答