Есть ли способ обнаружить в моем сценарии, поступает ли запрос от обычного веб-браузера или какого-то скрипта, выполняющего завиток. Я могу видеть заголовки и различать «User-Agent и другие несколько заголовков», но в curl поддельные заголовки могут быть установлены, поэтому я не могу отслеживать запрос.
Пожалуйста, предложите мне способы определения завитка или другого аналогичного запроса без браузера.
Единственный способ поймать большинство «автоматизированных» запросов – это закодировать логику, которая указывает на активность, которая не может быть человеком с браузером.
Например, слишком быстро ударяя страницы, заполняя форму слишком быстро, у вас есть внешний источник в html-файле (например, поддельный файл css через файл php) и проверьте, загрузил ли запрашивающий IP-адрес на предыдущем этапе вашего сайта (вроде как обратная honeypot), но вам нужно будет исключить блокировку определенных IP-адресов / пользовательских агентов, иначе вы заблокируете веб-серверы Google. и т.п.
Вероятно, это единственный способ сделать это, если завиток (или любой другой автоматизированный скрипт) подделывает его заголовки, чтобы выглядеть как браузер.
Строго говоря, нет никакого способа.
Хотя есть непрямые методы, но я бы никогда не обсуждал это публично, особенно на сайте, таком как Stackoverflow, который поощряет очистку экрана, аутопостинг контента и все эти грязные роботизирующие материалы.
В некоторых случаях вы можете использовать тест CAPTCHA, чтобы рассказать человеку от бота.
Насколько я знаю, вы не можете видеть разницу между «реальным» вызовом из вашего браузера и одним из curl.
Вы можете сравнить заголовок (User-agent), но все, что я знаю.