阻止用户 "hammering" Web 服务

Prevent a user from "hammering" a web service

我有一个 MVC 5 互联网应用程序,其中包含托管在 Azure 上的 Web 服务。我想实施某种安全措施,以防止任何用户 "hammering" Web 服务。当我说 "hammering" 时,我指的是用户不断攻击 url 数千次。

我在网上做了一些调查,但找不到任何相关资源。

我应该为此编写自己的代码,还是有我可以实现的 library/tool?

如果我自己写这个,我正在考虑执行以下操作:

  1. 每次用户访问 web 服务时,增加 ip 地址的计数变量。
  2. 如果 ip 地址计数变量超过一个数字(即 1000),则不向用户发送网络服务数据

在我自己写这个之前,是否有一个 library/tool 我可以实现而不是自己写?

提前致谢。

编辑

抱歉,我忘了补充一点,我没有使用虚拟机,相反,我有一个带有网络 API 服务的网站。

Azure 已经为 DDoS 攻击提供保护。查看 Microsoft Azure Trust Center 文档。该平台内置了大量保护和检测功能,至于编写安全代码的最佳实践,您可以在信任中心的资源部分找到。但是,编写代码来计算来自您提到的 IP 地址的请求数并不是正确的方法。 Simon W 在评论中指出了这种方法的一个明显问题。