Насколько велика дыра в мозгу фронтенд-инженеров для борьбы с краулерами?

внешний интерфейс рептилия JavaScript PhantomJS CSS
Насколько велика дыра в мозгу фронтенд-инженеров для борьбы с краулерами?

- также опубликовано вimweb.io

1. Введение

Мы часто хотим, чтобы веб-страница была хорошо структурирована и содержала ясное содержание, чтобы поисковые системы могли ее точно распознать.
С другой стороны, есть некоторые сценарии, где мы не хотим, чтобы содержание было легко получено, например, объем транзакции веб-сайтов электронной коммерции, названия образовательных веб-сайтов и т. Д. Поскольку эти содержимое часто являются жизненным слоем продукта, они должны быть эффективно защищены. ЭтоРекламка с анти-рептилемпроисхождение этой темы.

2. Общие стратегии борьбы с рептилиями

Но в мире нет ни одного веб-сайта, который мог бы быть идеально антисканером.

Если страница должна нормально отображаться перед пользователями, не давая шанса сканерам, она должна быть в состоянии идентифицировать реальных людей и роботов. Поэтому инженеры предприняли различные попытки, и большинство из этих стратегий используются взадняя часть, также является относительно обычным одноэффективным средством, таким как:

  • Обнаружение User-Agent + Referer
  • Проверка учетной записи и файлов cookie
  • проверяющий код
  • Частота ограничения IP

А рептилии могут быть бесконечно близки к реальным людям, например:

  • chrome headless или phantomjs для имитации среды браузера
  • tesseractОпределить код подтверждения
  • Агент IP Taobao можно купить

Итак, мы говорим, 100% стратегия против сканирования? несуществующий.
Это больше физическая активность, и это вопрос сложности.

Однако, как фронтенд-инженеры, мы можем увеличить сложность игры и разработать некоторыеОчень (санг) с (син) смыслом (бинг) мышление (гуан)стратегия борьбы с рептилиями.

3. Фронтенд и антикраулеры

3.1 Пэчворк Font-Face

пример:кошачий глаз фильм

В фильмах Маояня данные о кассовых сборах — это не просто цифры.
Страница использует font-face для определения набора символов и использует unicode для сопоставления и отображения. То есть, за исключением распознавания изображений, набор символов должен быть просканирован одновременно, чтобы распознавать числа.

Более того, каждый раз, когда страница обновляется, URL-адрес набора символов меняется, что, несомненно, увеличивает стоимость сканирования.

3.2 фоновое пэчворк

пример:Мейтуан

Подобно стратегии шрифта, Meituan использует пэчворк фона. Цифры на самом деле являются картинками, и разные символы отображаются в соответствии с разным смещением фона.

И разные страницы, порядок символов картинок тоже разный. Однако теоретически нужно генерировать только 0-9 и десятичную точку, поэтому я не понимаю, почему повторяются символы.

Страница А:

Страница Б:

3.3 Перемежающиеся символы

пример:Статья публичного аккаунта WeChat

Статьи некоторых официальных аккаунтов WeChat перемежаются различными загадочными персонажами, и эти символы скрыты за счет стилей.
Хотя этот метод шокирует... но на самом деле его не так уж сложно идентифицировать и отфильтровать, и его даже можно сделать лучше, но это тоже своего рода дыра в мозгу.

Кстати, могу ли я получить компенсацию за свои мобильные данные?

3.4 Псевдоэлемент скрыт

пример:автомобиль домой

Дом автомобиля, ключевая информация о производителе помещается в содержание псевдоэлемента.
Это тоже способ мышления: чтобы сканировать веб-страницы, нужно парсить css и получать содержимое псевдоэлементов, что увеличивает сложность краулеров.

3.5 Наложение позиционирования элемента

пример:куда

А куда пойти тем, кто любит математику, для 4-х значной цены билета используйте четыре первыхiОтрисовка этикетки, используйте еще дваbМетки переходят к абсолютным смещениям позиционирования, покрывая преднамеренные ошибки отображения.iЭтикетки, окончательно формирующие правильную цену визуально…

Это показывает, что сканер не может анализировать CSS, и ему приходится решать математические задачи.

3.6 асинхронная загрузка iframe

пример:Облачная музыка NetEase

Как только открывается страница NetEase Cloud Music, там почти только один исходный код htmliframe, а его src пуст:about:blank. Затем начинает запускаться js, и фрейм всей страницы асинхронно запихивается в iframe...

Однако трудности, связанные с этим методом, не велики, это просто обходной путь в асинхронной и iframe-обработке (или есть другие причины, не полностью основанные на соображениях антисканирования), независимо от того, используете ли вы селен или фантом, есть API-интерфейсы, которые может использоваться для информации о содержимом в iframe.

3.7 Сегментация символов

пример:Прокси IP всей сети

На некоторых страницах, которые отображают информацию об IP-адресе прокси, защита IP также вызывает много хлопот.

Они сначала разобьют номер IP на узел DOM, затем вставят в середину перепутанную цифру.Если краулер не знает этой стратегии, я буду думать, что я успешно получил значение, но если краулер заметил, он очень решен. .

3.8 Замена набора символов

пример:куда пойти мобильная сторона

Мобильная версия Qunar также обманет поисковый робот.

3211 четко написано в html, но 1233 отображается визуально. Оказывается, они переопределили набор символов, и порядок 3 и 1 просто поменял местами результат...