Accept-Language
Заголовок, которым браузер сообщает предпочитаемые языки. У настоящих браузеров есть всегда; его отсутствие — признак программы.
Браузер берёт список языков из настроек системы и прикладывает его к
каждому запросу: ru-RU,ru;q=0.9,en-US;q=0.8. Сайты по нему выбирают
язык интерфейса. Библиотеки вроде python-requests или curl без
специальной настройки этот заголовок не шлют.
Для защиты пустой Accept-Language у клиента, который называет себя
браузером, — тихий, но надёжный довод. Он не блокирует сам по себе: есть
корпоративные прокси, которые вырезают заголовки, и экзотические
браузеры. Но в сочетании с частотой, адресом из датацентра и отсутствием
Sec-Fetch картина складывается.
Что с этим делать
Страницы о защите от того, что описано выше: как это выглядит на сайте и что делает BotBan.
Смежные термины
Подробнее в блоге
- Один запрос под микроскопом: как сервис решает, бот перед ним или человек Что успевает произойти между «пришёл запрос» и «отдали страницу»: какие признаки смотрим, чему не верим и почему сомнение всегда в пользу посетителя.
- Спам-рефереры и призрачный трафик: что это и как убрать Переходы с незнакомых сайтов, которых на самом деле не было. Зачем это делают и как убрать шум из отчётов.
- Защита формы от спам-ботов без капчи: рабочие способы Три способа, которые не задают посетителю ни одного вопроса, и объясняем, какой из них чего стоит.