#coldfusion #coldfusion-10 #cfthread
#coldfusion #coldfusion-10 #cfthread
Вопрос:
Недавно мы перенесли наш сайт из приложения.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. или вы могли бы установить ограничители дальше вверх по течению, например, на уровне брандмауэра, чтобы боты никогда не достигали уровня CF.
2. Боты создают слишком много сеансов, что приводит к сбою JVM? Вы можете изменить время ожидания сеанса для бот-соединений на одну секунду, чтобы сеансы ботов не накапливались и не приводили к сбою JVM.
3. Какой веб-сервер вы используете? Мы используем IIS 7.5 и используем модуль перезаписи URL с парой правил user-agent для возврата ответа 403 для известных оскорбительных пользовательских агентов. (Мы делаем это так, чтобы ColdFusion даже не участвовал в процессе блокировки.)
4. @EvikJames, как всегда, у Бена Наделя есть ответы … bennadel.com/blog /… и bennadel.com/blog /…
5. Тангенциальный к вашему вопросу, но я сильно сомневаюсь, что причиной этого является разница между Application.cfm и Application.cfc. Я рекомендую вам опубликовать оба на codereview.stackexchange.com так что мы можем посмотреть, что ты делаешь.