@weranda

Почему поле user-agent бывает пустым?

Есть код на PHP, записывающий в файл IP и user-agent.
$ip = $_SERVER['REMOTE_ADDR'];
$agent = $_SERVER['HTTP_USER_AGENT'];

$file = 'user-agents.txt';
$current = file_get_contents($file);
$current .= "\n" . str_pad($ip, 20) . "" . str_pad(date("d.m.Y H:i:s"), 25) . "" . $agent;
file_put_contents($file, $current);

Замечаю в файле отсутствующие данные о user-agent, IP есть, а user-agent — нет. Подскажите пожалуйста почему так происходит — ошибка в коде или боты/люди с отсутствующим user-agent и можно ли таких смело блокировать или есть вероятность того, что это могут быть исковые системы?
  • Вопрос задан
  • 134 просмотра
Пригласить эксперта
Ответы на вопрос 3
TheDeadOne
@TheDeadOne
Седой и строгий
Во-первых, есть масса плагинов анонимизации к браузерам, которые этот заголовок скрывают, да и Chrome в режиме инкогнито, если мне не изменяет память. его не передаёт. Во-вторых, обращаться к сайту могут не только бразуеры, но и другие программы, которые могут и не устанавливать этот заголовок.
Ответ написан
@rudikov
Дополню слова Сергей Горностаев.
Плагины анонимизации обычно меняют user-agent на другой.
В режима инкогнито браузеры все же передают user-agent (проверил на Chrome, Opera).
Все крупные поисковые системы указывают user-agent для своих ботов.

Так что это либо программы, либо браузеры с заблокированной отправкой user-agent посредством плагинов.
Касательно Вашего кода ничего не скажу, не знаю PHP.
Ответ написан
@galliard
User-Agent - необязательный заголовок. Его можно передавать, можно не передавать, это на усмотрение клиента.

Вопрос в другом. А зачем вам блокировать клиентов без юзер-агента? Они вам как-то мешают?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы