我们最近将我们的网站从application.CFM迁移到了application.CFC。 CFM版本可以处理我们过多的机器人流量,但我们的CFC版本不能。我们试图找出CFC问题的原因。与此同时,我们正试图限制机器人流量。
目前,我正在寻找代码库中的解决方案来减慢僵尸网络流量。我们可以通过查看用户代理和IP地址来完成此操作。
我们已经使用下面的代码成功阻止了很多机器人。
<cffunction name="OnRequestStart">
<cfif find("bot", cgi.httP_USER_AGENT)>
<cfabort>
</cfif>
</cffunction>
显然,我们确实需要一些机器人流量。但是现在,我们无法处理所有机器人流量。看来,只要我们中止停止请求,另一个请求就在它后面,最终它们会关闭我们的服务器。
不是停止机器人,使用CFTHREAD减慢机器人的后果会是什么?
<cffunction name="OnRequestStart">
<cfif find("bot", cgi.httP_USER_AGENT)>
<cfthread action="sleep" duration="5"></cfthread>
</cfif>
</cffunction>
使用CFTHREAD只会堆叠请求并最终杀死我们的服务器,还是机器人会以每小时更少的请求响应?