3

我们最近将我们的站点从 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 只会堆积请求并最终杀死我们的服务器,还是机器人会以每小时更少的请求响应?

4

0 回答 0