我最近接手了一个应用程序,我们最近做了一个 appscan,我得到了一个标记为易受攻击的项目。报告建议的补救任务是拒绝恶意请求。报告称 appscan 尝试过:
对原始请求应用了以下更改:将 HTTP 标头设置为 ' http://bogus.referer.ibm.com '
我在第一次运行 appscan 时标记了这个,并输入代码来检查是否提供了 urlreferer,如果是,则确保它与 url 中的主机相同,否则终止用户的会话并重定向到登录页面。我们再次运行 appscan 并再次被标记,我不确定如何处理。
当我查看报告时,它显示它放入了虚假引荐来源网址,服务器以 302 状态响应,重定向,然后请求登录,服务器以 202 响应,给它。Appscan 推理说:
相同的请求在不同的会话中发送了两次,并收到了相同的响应。这表明没有一个参数是动态的(会话标识符仅在 cookie 中发送),因此应用程序容易受到此问题的影响。
但反应不总是一样的吗?如果检查失败后出现 302 和 202,则无论用户如何,都会出现重定向和登录页面。有谁知道如何处理这个?我猜我可以将用户的会话 id 放入重定向 url,这样 appscan 会看到是否不同,但我认为必须有另一种方法。
这是一个 .net 4 应用程序。使用 Session 对象跟踪用户,如果这很重要,则不使用表单身份验证。