最近、サイトを 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 を使用すると、リクエストが積み重なって最終的にサーバーが停止するのでしょうか、それともボットが応答する 1 時間あたりのリクエスト数が少なくなるのでしょうか?