我管理的网站正受到一个非常愚蠢的机器人的“攻击”。该机器人一直在尝试相同的请求,它总是得到错误的请求响应,因为 ASP.NET 检测到“从客户端检测到一个潜在危险的 Request.Path 值”。
我尝试通过 IIS/Web.config (ipSecurity)/.htaccess 文件 (Helicon ape) 将机器人的 IP 添加到我的拒绝 IP 中,一般情况下它可以工作并阻止 IP 发出“正常”请求。但当机器人尝试访问其奇怪的 URL(如“mydomain.com/a.aspx/+[PLM=0]+GET+”)时http://bla.bla.com' 服务器抛出异常:System.Web.HttpException:从客户端检测到潜在危险的 Request.Path 值(:)。
我不希望我的弱服务器尝试处理来自该 IP 的任何请求,当然也不想一直抛出异常。该服务器位于共享主机上,因此我没有太多选择,例如添加一些路由器(如 fortinet 等)以在较低级别阻止 IP。
有什么想法可以让我说服我的服务器始终忽略来自这些特定 IP 的请求,即使它尝试了潜在的危险请求?还有其他建议如何处理这种情况吗?
答案1
由System.Web.HttpException: A potentially dangerous Request.
生成 ValidateInputIfRequiredByConfig()
。System.Web/HttpRequest.cs
此验证是内置的,并在当前 IP 阻止之前完成,因此请求根本无法到达那里。异常仅证明验证有效,并且请求不会进一步处理。别担心。
如果您确实需要在处理任何请求之前阻止 IP,那么您需要在防火墙级别执行此操作,就像 HBruijn 所评论的那样。