6

我最近接手了一个应用程序,我们最近做了一个 appscan,我得到了一个标记为易受攻击的项目。报告建议的补救任务是拒绝恶意请求。报告称 appscan 尝试过:

对原始请求应用了以下更改:将 HTTP 标头设置为 ' http://bogus.referer.ibm.com '

我在第一次运行 appscan 时标记了这个,并输入代码来检查是否提供了 urlreferer,如果是,则确保它与 url 中的主机相同,否则终止用户的会话并重定向到登录页面。我们再次运行 appscan 并再次被标记,我不确定如何处理。

当我查看报告时,它显示它放入了虚假引荐来源网址,服务器以 302 状态响应,重定向,然后请求登录,服务器以 202 响应,给它。Appscan 推理说:

相同的请求在不同的会话中发送了两次,并收到了相同的响应。这表明没有一个参数是动态的(会话标识符仅在 cookie 中发送),因此应用程序容易受到此问题的影响。

但反应不总是一样的吗?如果检查失败后出现 302 和 202,则无论用户如何,都会出现重定向和登录页面。有谁知道如何处理这个?我猜我可以将用户的会话 id 放入重定向 url,这样 appscan 会看到是否不同,但我认为必须有另一种方法。

这是一个 .net 4 应用程序。使用 Session 对象跟踪用户,如果这很重要,则不使用表单身份验证。

4

2 回答 2

4

设置 viewstate 用户密钥,参考:https ://security.stackexchange.com/questions/19152/how-does-viewstate-protect-against-csrf 这使得在没有访问最新页面的情况下发送查询变得更加困难和你的饼干。

使用 HttpException 返回 403(您可能需要做一些额外的工作,以免它变成 500)

抛出 HttpException 总是发回 HTTP 500 错误?

应用程序扫描具有高度可识别的特征——它们在同一分钟内抛出 100 多个异常。作为您的错误记录基础设施的一部分,您可能希望在同一分钟内说 5 个异常后显示验证码,或者在应用程序扫描引发的错误(如非常长的 URL、.jsp 查询)上显示验证码.aspx 应用程序中的文件)。一旦 appscanner 被识别出来,您就会希望通过始终重定向到错误页面来毒化他们的会话,直到他们解决验证码。不利的一面是,在应用程序抛出异常后,用户看到验证码的可能性很小,比如当用户在文本框中输入 > 时出现安全错误。您可能希望也可能不希望为所有应用程序扫描程序实现此功能,也许只是恶意的,

于 2013-04-30T20:43:17.413 回答
0

ngx_dynamic_limit_req_module 参考

ngx_dynamic_limit_req_module用于动态锁定IP并定期释放

于 2018-11-21T10:58:38.847 回答