如何减慢网站的响应时间?

问题描述 投票:0回答:1

状况 这是一个奇怪的问题,需要一些解释。我有一个Web服务器,它为几个域服务,但它也有一个 "默认网站",可以捕获任何没有映射的东西。这个默认网站现在有一个过滤器,它检查访问者的IP地址、主机名、查询URL和每个请求的头部,以检测 "可疑 "流量。例如,如果主机是我的IP地址而不是域名,那么这就是可疑的。其他的检查是对用户代理、"Accept-Language "头和其他一些头键进行检查。或者当请求的是 "WordPress "文件夹或者文件 "License.txt "什么的。 还有一个以前的访问者的黑名单,这些访问者将被立即阻止。过滤器 筛选器的速度和效率都比较高,基本上可以告诉我访客在找什么。这是默认的网站,所以我不希望有访客,但还是会发生这种情况。而且如果访客看起来是合法的,它可以帮助提供一些信息给访客,让他知道访问了错误的网站或者其他什么。我的 startup.cs 中有一个 Services.AddHackerFilter() 在ConfigureServices方法中调用,它基本上是安装中间件。它添加了一个类HackerFilterMiddleware,其中有一个方法是 public async Task InvokeAsync(HttpContext context) 来处理过滤。这个过滤器使用内存中的过滤器列表和IP地址的黑名单,这两个列表都是在服务器启动时从数据库中读取的。目前还在开发中... 问题 但现在我的问题是:有人在不怀好意地访问我的域名。一个很常见的行为是,他们试图通过专门请求某些URL来发现是否有WordPress或其他任何安装有额外漏洞的CMS系统。当检测到时,这个尝试会被记录下来,同时一些4xx错误会返回给访问者。但由于这个过程相当快,他们可能就会再次尝试。而让他们在短时间内进行多次尝试是不太现实的,所以我想让他们慢下来。就是这样! 所有的Web开发人员都在关注快速返回结果,而我却希望它真的很慢。最好是,如果响应需要几分钟甚至更长的时间,那就太好了。而对于服务器本身来说,应该几乎不需要时间。(无论如何都不会有很多访问者......)所以,InvokeAsync方法必须在不浪费太多CPU周期的情况下减慢速度。简单的延迟可以工作,但我想避免任何超时。那么,有什么好的方法可以减慢这个请求的速度呢?

c# asp.net-core iis-7 visual-studio-2019
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.