Jakie są opcje wykrywania robotów internetowych, które nie chcą być wykrywane?
(Wiem, że techniki wykrywania aukcji pozwolą inteligentnemu programistowi stealth-crawlerów na stworzenie lepszego pająka, ale nie sądzę, żebyśmy kiedykolwiek byli w stanie zablokować inteligentne roboty, a tylko te, które popełniają błędy.)
Nie mówię o fajnych robotach, takich jak Googlebot i Yahoo! Slurp. Uważam bota za fajnego, jeśli:
- identyfikuje się jako bot w ciągu agenta użytkownika
- czyta plik robots.txt (i przestrzega go)
Mówię o złych robotach, chowających się za zwykłymi użytkownikami, wykorzystujących moją przepustowość i nigdy nie dając mi nic w zamian.
Istnieje kilka zapadni, które można zbudować zaktualizowaną listę (dzięki Chris, gs) :
- Dodanie katalogu tylko wymienionego (oznaczonego jako disallow) w pliku robots.txt,
- Dodanie niewidocznych linków (prawdopodobnie oznaczonych jako rel = "nofollow"?),
- style = "display: none;" na linku lub w kontenerze nadrzędnym
- umieszczony pod innym elementem o wyższym indeksie Z.
- wykryć, kto nie rozumie kapitalizacji,
- wykryć, kto próbuje wysyłać odpowiedzi, ale zawsze nie powiedzie się Captcha.
- wykrywa żądania GET do zasobów tylko POST
- wykryć odstęp między żądaniami
- wykryć kolejność żądanych stron
- wykryć, kto (konsekwentnie) żąda zasobów https przez http
- Wykryj, kto nie żąda pliku obrazu (w połączeniu z listą klientów użytkownika znanych przeglądarek obsługujących obrazy działa zaskakująco dobrze)
Niektóre pułapki byłyby uruchamiane zarówno przez „dobre”, jak i „złe” boty. możesz połączyć je z białą listą:
- To uruchamia pułapkę
- To żądanie
robots.txt
? - Nie uruchamia kolejnej pułapki, ponieważ był posłuszny
robots.txt
Jest jeszcze jedna ważna rzecz:
rozważ osoby niewidome korzystające z czytników ekranu: daj innym możliwość skontaktowania się z Tobą lub rozwiąż Captcha (bez obrazu), aby kontynuować przeglądanie.
Jakie istnieją metody automatycznego wykrywania robotów indeksujących, które próbują maskować się jako zwykli ludzie.
Aktualizacja
Pytanie nie brzmi: jak złapać każdego robota. Pytanie brzmi: jak zmaksymalizować szansę wykrycia robota.
Niektóre pająki są naprawdę dobre i właściwie analizują i rozumieją html, xhtml, css javascript, skrypt VB itp ...
Nie mam złudzeń: nie będę w stanie ich pokonać.
Zdziwiłbyś się jednak, jak głupie są niektóre roboty. Najlepszym przykładem głupoty (moim zdaniem) jest: rzutowanie wszystkich adresów URL na małe litery przed ich zażądaniem.
Jest też cała masa robotów, które po prostu „nie są wystarczająco dobre”, aby ominąć różne zapadnie.