如何拒绝恶意请求

本文关键字:恶意 请求 拒绝 何拒绝 | 更新日期: 2023-09-27 18:11:47

我最近接管了一个应用程序,我们最近做了一个应用程序扫描,我发现一个项目被标记为易受攻击。报告建议的补救任务是拒绝恶意请求。报告显示appscan已尝试:

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

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

当我查看报告时,它显示它输入了虚假的推荐人,服务器响应了302状态,重定向,然后输入了一个登录请求,服务器响应了202,给出了它。Appscan推理说:

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

但是反应不是总是一样的吗?如果检查失败,将显示302和202,不管用户是谁,都会出现重定向和登录页面。有人知道怎么处理吗?我猜我可以把用户的会话id到重定向url,所以appscan会看到如果不同,但我认为必须有另一种方式。

这是一个。net 4应用程序。用户使用Session对象跟踪,如果这很重要,则没有使用Forms Authentication。

如何拒绝恶意请求

设置viewstate用户key, ref: https://security.stackexchange.com/questions/19152/how-does-viewstate-protect-against-csrf这使得在没有访问最近的页面&你的饼干。

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

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

应用程序扫描具有高度可识别的特征——它们在同一分钟内抛出100个异常。作为错误记录基础设施的一部分,您可能希望在同一分钟内出现5个异常后显示验证码,或者在应用程序扫描抛出的应用程序从未抛出的错误(如非常长的url,在.aspx应用程序中查询.jsp文件)上显示验证码。一旦一个应用程序扫描器已经被识别,你会想要毒害他们的会话,总是重定向到一个错误页面,直到他们解决capcha。这样做的缺点是,在应用程序抛出异常(比如当用户在文本框中输入>时出现安全错误)之后,向用户提供验证码的可能性很低。你可能想也可能不想为所有的应用程序扫描器实现这个功能,也许只是恶意的,这取决于你的组织的动机。

ngx_dynamic_limit_req_moduleref

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