2010-09-18 3 views
2

Есть ли способ обнаружить в моем сценарии, будет ли запрос поступать из обычного веб-браузера или какого-то скрипта, выполняющего завиток. Я могу видеть заголовки и различать «User-Agent и другие несколько заголовков», но в curl поддельные заголовки могут быть установлены, поэтому я не могу отслеживать запрос.Как определить запрос curl

Пожалуйста, предложите мне способы определения завитка или другого аналогичного запроса без браузера.

ответ

10

Единственный способ уловить большинство «автоматизированных» запросов - это закодировать логику, которая указывает на активность, которая не может быть человеком с браузером.

Например, слишком быстро ударяя страницы, заполняя форму слишком быстро, у вас есть внешний источник в html-файле (например, поддельный файл css через файл php) и проверьте, загрузил ли его запрашивающий IP-адрес на предыдущем этапе вашего сайта (вроде как обратная honeypot), но вам нужно будет исключить блокировку определенных IP-адресов/пользовательских агентов, иначе вы заблокируете веб-серверы Google. и т. д.

Это, вероятно, единственный способ сделать это, если завиток (или любой другой автоматизированный сценарий) подделывает его заголовки, чтобы выглядеть как браузер.

+0

1+ для упоминания google spider –

0

Насколько я знаю, вы не можете видеть разницу между «реальным» вызовом из вашего браузера и одним из завитушек.

Вы можете сравнить заголовок (User-agent), но все, что я знаю.

2

Строго говоря, нет способа.
Несмотря на отсутствие прямых технологий, но я никогда не буду обсуждать его публично, особенно на таком сайте, как Stackoverflow, который поощряет очистку экрана, аутопостинг контента и все эти грязные роботизированные вещи.

В некоторых случаях вы можете использовать тест CAPTCHA, чтобы рассказать человеку от бота.