Opsi apa yang tersedia untuk mendeteksi perayap web yang tidak ingin dideteksi?
(Saya tahu bahwa teknik pendeteksian daftar akan memungkinkan pemrogram perayap siluman yang cerdas untuk membuat laba-laba yang lebih baik, tetapi menurut saya kami tidak akan pernah dapat memblokir perayap siluman yang cerdas, hanya yang membuat kesalahan.)
Saya tidak sedang berbicara tentang perayap bagus seperti googlebot dan Yahoo! Mencucup. Saya menganggap bot bagus jika:
- mengidentifikasi dirinya sebagai bot dalam string agen pengguna
- membaca robots.txt (dan mematuhinya)
Saya berbicara tentang perayap yang buruk , bersembunyi di balik agen pengguna umum, menggunakan bandwidth saya dan tidak pernah memberi saya imbalan apa pun.
Ada beberapa pintu jebakan yang dapat dibangun daftar yang diperbarui (terima kasih Chris, gs) :
- Menambahkan direktori yang hanya terdaftar (ditandai sebagai dilarang) di robots.txt,
- Menambahkan tautan tak terlihat (mungkin ditandai sebagai rel = "nofollow"?),
- style = "display: none;" di link atau wadah induk
- ditempatkan di bawah elemen lain dengan indeks-z yang lebih tinggi
- mendeteksi siapa yang tidak memahami kapitalisasi,
- mendeteksi siapa yang mencoba mengirim balasan tetapi Captcha selalu gagal.
- mendeteksi permintaan GET ke sumber daya hanya POST
- mendeteksi interval antar permintaan
- mendeteksi urutan halaman yang diminta
- mendeteksi siapa (secara konsisten) meminta sumber daya https melalui http
- mendeteksi siapa yang tidak meminta file gambar (ini dikombinasikan dengan daftar agen pengguna dari browser berkemampuan gambar yang dikenal bekerja sangat bagus)
Beberapa jebakan akan dipicu oleh bot 'baik' dan 'buruk'. Anda bisa menggabungkannya dengan daftar putih:
- Ini memicu jebakan
- Itu meminta
robots.txt
? - Itu tidak memicu jebakan lain karena dipatuhi
robots.txt
Satu hal penting lainnya di sini adalah:
Harap pertimbangkan tunanetra menggunakan pembaca layar: beri orang cara untuk menghubungi Anda, atau pecahkan Captcha (bukan gambar) untuk melanjutkan penelusuran.
Metode apa yang ada untuk mendeteksi perayap web secara otomatis yang mencoba menyamar sebagai pengunjung manusia biasa.
Perbarui
Pertanyaannya bukan: Bagaimana cara menangkap setiap crawler. Pertanyaannya adalah: Bagaimana cara memaksimalkan peluang mendeteksi crawler.
Beberapa laba-laba sangat bagus, dan benar-benar mengurai dan memahami html, xhtml, css javascript, skrip VB, dll.
Saya tidak punya ilusi: Saya tidak akan bisa mengalahkan mereka.
Namun Anda akan terkejut betapa bodohnya beberapa crawler. Dengan contoh terbaik dari kebodohan (menurut saya): melemparkan semua URL ke huruf kecil sebelum memintanya.
Dan kemudian ada sejumlah perayap yang 'tidak cukup baik' untuk menghindari berbagai pintu jebakan.