如何防止 ASP.NET MVC 应用程序中的 DoS 攻击?
Posted
技术标签:
【中文标题】如何防止 ASP.NET MVC 应用程序中的 DoS 攻击?【英文标题】:How to prevent DoS attack in ASP.NET MVC applications? 【发布时间】:2012-08-04 03:33:44 【问题描述】:我不希望有人保留我的网站或使用某些工具频繁地请求页面。
也就是说,防止一个Action或Controller被一个客户端频繁调用。
我该如何实现呢?有什么我可以使用的包吗?就像 AntiXSS 库一样。
【问题讨论】:
您只能允许用户每 5 秒发出一次 HTTP 请求。 *** 只允许你每隔 x 时间做一些事情来节省带宽。 相关:Best way to implement request throttling in ASP.NET MVC? @AlexW SO 会进行节流,但这不足以防止 DOS 攻击,因为它基于 IP 地址,可以在一秒钟内更改一百万次,显然不是我而是黑客 你要找的不是反xss。您需要一个 DoS 保护库。看到这个答案:***.com/a/56075128/1679165 【参考方案1】:大部分这些功能都可以在 IIS 管理器中找到。像Dynamic IP Restrictions 这样的东西应该会有所帮助。通读Microsoft's Best Practices for Preventing DoS/Denial of Service Attacks,这提供了一份很好的待办事项清单。
同样根据this video,Cloud Flare 能够通过他们的免费服务阻止这些攻击。
【讨论】:
动态 IP 限制是否在负载平衡、无状态的网络场中工作?根据我阅读的描述,它看起来不像。我的意思是该模块是跨多台机器跟踪 IP 请求,还是只跟踪本地机器? 一般地通过ip限制请求是不够的。如果有重功能,攻击者可以使用IP定义的一般限制,向重功能发出N个请求,以关闭服务器。您需要在功能级别指定限制。请参阅此答案(API Protector .NET 库):***.com/a/56075128/1679165以上是关于如何防止 ASP.NET MVC 应用程序中的 DoS 攻击?的主要内容,如果未能解决你的问题,请参考以下文章
在 ASP.NET MVC 中执行 SQL Server 存储过程时如何防止超时错误?
ASP.NET MVC 中的 AntiForgeryToken 是不是可以防止所有 CSRF 攻击?