1

我们最近完成了一次安全扫描,结果表明我们的应用程序很容易通过此处描述的 ResolveUrl cookieless state 问题受到 XSS 的影响。

现在我正在寻找一种方法来以全局方式为我们的应用程序正确解决问题。不使用 ResolveUrl 并不是一个真正的选择,因为我们确实在 1000 多个地方使用它。我觉得奇怪的是,在 ASP.NET(据我所知)中没有办法完全禁用无 cookie 状态 url 解析,因为我们没有使用无 cookie 状态。

我尝试在 BeginRequest 中实施检查,以删除在 URL 中具有以(.(.开始任何字符)开头的路径段的请求。这会起作用,因为我们应用程序中的实际 url 没有一个以此开头的路径段。但是,问题是,我们可以从请求中读取的 url 不再具有此路径段。它似乎在我们的代码开始执行之前被运行时过滤掉了。

我还有什么其他选择?

4

2 回答 2

0

最终,我使用了 UrlRewrite 模块的规则,使用与原始问题中相同的正则表达式来简单地阻止所有请求。此模块在 .net 从请求 url 中删除无 cookie 会话 id 之前运行,因此我可以阻止请求

于 2020-07-17T14:32:09.233 回答
0

这是我们在 UrlRewrite 规则中使用的正则表达式模式

.*/\([a-zA-Z]\(.*

使用 动作类型Abort Request,这匹配并阻止文章中描述的 URL,例如

  • (A(XXXXXXXXXXX))
  • (S(XXXXXXXXXXX))
  • (F(XXXXXXXXXXX))
于 2020-09-02T16:02:34.847 回答