如何防止 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:如何防止会话锁定?

在 ASP.NET MVC 中执行 SQL Server 存储过程时如何防止超时错误?

ASP.NET MVC 中的 AntiForgeryToken 是不是可以防止所有 CSRF 攻击?

如何防止在asp.net mvc中上传exe文件

如何防止用户使用 ASP NET MVC 在给定时间内添加条目? [关闭]

防止 asp.net Web 表单中的跨站点请求伪造 (csrf) 攻击