Перш за все, давайте подивимося в загальних рисах, що таке агент користувача Інтернет-браузера і для чого він використовується.
зміст
Що таке агент користувача (або агент користувача)?
Усі інтернет-браузери (Internet Explorer, Safari, Opera, Firefox, Chrome тощо) мають програмне забезпечення-агент, яке взаємодіє з веб-сайтом, який ви відвідуєте, на рівні хост-сервера. Це програмне забезпечення встановлює інтернет-з’єднання з веб-сайтом, розуміє, перевіряє та відображає вміст сторінки, на яку ви отримали доступ. Коротше кажучи, він забезпечує взаємодію між користувачем і хост-сервером, який обслуговує користувачеві запитані веб-сторінки, звертаючись до певної URL-адреси за протоколом HTTP / HTTPS.
Агент користувача містить у заголовку, який доставляється на сервер, до якого він звертається, інформацію, пов’язану з програмним забезпеченням, яке використовує користувач, операційною системою, версією програмного пакета браузера. Наприклад, агент користувача для Google Chrome поверне на сервер інформацію про використовувану версію Google Chrome і операційну систему користувача.
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3163.100 Safari/537.36
Заголовок user-agent вище означає, що версія Google Chrome 70 на комп'ютері с процесор AMD, 64-бітна архітектура з операційною системою Windows 10.
Ви, мабуть, запитаєте себе чому Mozilla відображається як агент користувача для Chrome. Це свого роду трюк, який використовує Google (і Microsoft в IE), щоб полегшити доступ користувачів Chrome до всіх сайтів, сумісних із Mozilla та Safari. AppleWebKit є механізмом відтворення вмісту.
Веб-майстри або адміністратори веб-серверів можуть блокувати доступ певних агентів користувача на розміщених веб-сайтах. У більшості випадків це обмеження накладається веб-роботи (веб-ботів), які хаотично або надмірно відвідують веб-сторінки веб-сайту. На щастя, ці боти мають специфічний агент користувача, і їх можна дуже легко виявити в журналах веб-сервера.
Як заблокувати доступ агента користувача до веб-сервера за допомогою NGINX
Давайте візьмемо сценарій, за якого ми більше не хочемо дозволяти доступ до веб-сайту користувачам з операційною системою Windows XP та Інтернет-браузером Mozilla Firefox 5.0.
Ми додаємо наведений нижче код до файлу конфігурації nginx, щоб “сервер” блок:
if ($http_user_agent = "Mozilla/5.0 (Windows NT 5.1; rv:52.0) Gecko/20100101 Firefox/52.0"){
return 403;
}
Збережіть файл nginx.conf або файл, специфічний для веб-сайту, якщо ви використовуєте налаштовану конфігурацію (gen sites-available), тоді перезапустіть службу NGINX.
Усі користувачі Firefox 5.0 (включно з усіма версіями до 5.9) у Windows XP будуть перенаправлені на помилка 403 (Заборонено).
Я не випадково вибрав цей приклад. Починаючи з Firefox 52.9.0, Mozilla припинила підтримку користувачів Windows XP і Windows Vista. Операційні системи, підтримку яких припинила Microsoft у 2014 році, відповідно у 2017 році для Windows Vista.