Обнаружение headless-браузеров
Обнаружение headless-браузеров
Ранее в одной из статей я рассказал, как при помощи "безголовых" серверных браузеров можно собирать информацию с сайтов. А сейчас в связи с тем, что гугл меня окончательно задолбал уведомлениями о якобы распространении вредоносного софта, я задумался о противодействии таким технологиям.
Мысли о фильтрации пауков гугла по ip-адресам и любую серверную предобработку контента я отмел сразу, это заведомо дохлый номер. А вот показывать или не показывать определенный контент на странице в зависимости от поведения браузера - вот это хорошо и правильно. Естественно, раз уж это динамические действия, то выполняться они будут на JavaScript.
Начнем с самого простого - проверка наличия строки "headless" в названии браузера и/или в его версии.
Code (JavaScript) : Убрать нумерацию
- var test1=(/headless/i.test(window.navigator.userAgent))?1:0;
- var test2=(/headless/i.test(window.navigator.appVersion))?1:0;
Более интересный способ обнаружения основан на том, что у "безголового" Chrome отсутствует объект window.chrome, обязательный для любого десктопного или мобильного браузера, созданного на движке WebKit. Осталось только найти способ, чтобы гарантированно определять наличие движка WebKit. И такой способ есть.
Code (JavaScript) : Убрать нумерацию
- var test3=(eval.toString().length==33 && !window.chrome)?1:0;
Кроме перечисленных способов можно использовать более навороченные, которые работают только в реальных браузерах. Например, наличие установленных плагинов или доступ к браузерным уведомлениям. Но это уже на случай, если перечисленных простых способов окажется недостаточно.
Пока я только тестирую технологии противодействия гугловским сканерам, как только будут результаты, я обязательно дополню статью.
Просмотров: 1794 | Комментариев: 4
Метки: JavaScript
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
ManHunter
(04.09.2023 в 17:02):
И зачем здесь эта информация?
dmytro
(04.09.2023 в 16:57):
firefox содержит
window.netscape, window.mozInnerScreenX
window.netscape, window.mozInnerScreenX
ManHunter
(17.02.2022 в 07:51):
Пока нарабатываю статистику по заходам на клиентской стороне, потом все это дело как-то состыкую со статистикой по серверными заходами.
by matrixa
(16.02.2022 в 14:09):
Тема вполне уместная и очень болезненная, начала положено, удачи в изысканиях!
Добавить комментарий
Заполните форму для добавления комментария