При создании веб-искателя вам необходимо создать систему, которая собирает ссылки и добавляет их в очередь. Некоторые, если не большинство, из этих ссылок будут динамическими, которые кажутся разными, но не добавляют никакого значения, поскольку они специально созданы для обмана сканеров.
Пример:
Мы сообщаем нашему сканеру обходить домен evil.com, введя начальный URL-адрес для поиска.
Предположим, что мы позволяем ему сначала сканировать первую страницу, evil.com/index
Возвращенный HTML будет содержать несколько "уникальных" ссылок:
- evil.com/somePageOne
- evil.com/somePageTwo
- evil.com/somePageThree
Искатель добавит их в буфер нераскрытых URL.
При сканировании somePageOne искатель получает больше URL-адресов:
- evil.com/someSubPageOne
- evil.com/someSubPageTwo
Они кажутся уникальными, и поэтому они есть. Они уникальны в том смысле, что возвращаемый контент отличается от предыдущих страниц и что URL-адрес является новым для искателя, однако, похоже, это происходит только потому, что разработчик сделал "петлевую ловушку" или "черную дыру".
Искатель добавит эту новую подстраницу, а на дополнительной странице будет добавлена еще одна вспомогательная страница, которая также будет добавлена. Этот процесс может продолжаться бесконечно. Содержимое каждой страницы уникально, но совершенно бесполезно (это случайный текст или текст, извлеченный из случайного источника). Наш искатель будет продолжать поиск новых страниц, на что нас фактически не интересует.
Эти ловушки цикла очень трудно найти, и если ваш искатель не имеет ничего, чтобы помешать им на месте, он будет застревать в определенном домене для бесконечности.
Мой вопрос: какие методы могут быть использованы для обнаружения так называемых черных дыр?
Один из наиболее распространенных ответов, которые я слышал, - это введение ограничения на количество страниц, которые будут сканироваться. Однако я не вижу, как это может быть надежным методом, когда вы не знаете, какой сайт нужно сканировать. У законного сайта, такого как Википедия, может быть сотни тысяч страниц. Такой предел может вернуть ложный результат для таких сайтов.