Seorang developer telah membagikan pendekatan inovatif mereka dalam menangani web crawler yang agresif sambil menjaga pengalaman tetap lancar bagi pengunjung manusia. Alih-alih memasang tantangan menyeluruh yang membuat frustrasi semua orang, mereka membangun sistem pintar yang hanya mengganggu pengguna ketika benar-benar diperlukan.
Masalah dimulai ketika ribuan crawler otomatis mulai menggali repositori kode selama bertahun-tahun setiap hari. Ini bukan pengunjung biasa - mereka adalah bot sistematis yang memindai setiap URL yang mungkin, menciptakan beban server yang besar dan berpotensi memberi makan dataset pelatihan AI tanpa izin.
Metrik Dampak Performa:
- Tantangan apa pun memblokir lebih dari 99% lalu lintas crawler yang tidak diinginkan
- 10 permintaan/detik menciptakan beban signifikan karena TLS handshakes
- Overhead lalu lintas 4x dapat membanjiri server sederhana
- Proses latar belakang dari Mastodon (1 req/detik) dan Lemmy (2 req/detik) menambah beban konstan
- Lalu lintas crawler mengurangi efektivitas cache dengan mendorong keluar konten yang sah
Penempatan Tantangan Pintar Mengurangi Gesekan Manusia
Sistem ini hanya menantang pengunjung pada URL dalam yang jarang dikunjungi oleh browser biasa. Halaman populer di-cache oleh reverse proxy, sehingga sebagian besar lalu lintas manusia bahkan tidak pernah menemui sistem anti-crawler. Ketika seseorang memuat file CSS situs, mereka ditandai sebagai ramah karena browser yang sah membutuhkan styling tetapi sebagian besar crawler mengabaikannya.
Developer juga melacak URL spesifik mana yang mendapat kunjungan berulang. Jika sebuah tautan diklik lebih dari sekali, sistem menganggapnya sebagai lalu lintas manusia yang sah dan berhenti menampilkan tantangan untuk halaman tersebut. Ini berarti tautan yang dibagikan bekerja dengan lancar untuk semua orang setelah pengunjung pertama.
Rincian Strategi Deteksi Bot:
- Hanya menantang URL dalam (kurang dari 1% dari total URL tetapi mengandung 99% konten menarik)
- Cache halaman populer melalui reverse proxy untuk menghindari pemrosesan yang tidak perlu
- Tandai pengunjung yang memuat file CSS sebagai "ramah"
- Lacak URL yang dikunjungi berkali-kali dan lewati tantangan untuk tautan yang dibagikan
- Gunakan pertanyaan logika manusia alih-alih tantangan proof-of-work komputasional
Tantangan Kreatif yang Membingungkan Sistem Otomatis
Daripada menggunakan tantangan proof-of-work tradisional yang lebih baik ditangani komputer daripada manusia, sistem ini mengajukan pertanyaan sederhana seperti Berapa banyak huruf R dalam strawberry? Ini memerlukan pemikiran aktual daripada kekuatan komputasi. Wawasan kuncinya adalah bahwa tantangan apa pun sama sekali memblokir lebih dari 99% lalu lintas crawler yang tidak diinginkan.
Yang penting, tantangan tidak menyertakan solusi mereka sendiri dalam JavaScript. Banyak sistem bot dapat secara otomatis menyelesaikan tantangan ketika jawabannya tertanam dalam kode halaman, tetapi ini memerlukan input manusia yang asli.
Komunitas Memperdebatkan Hak Akses dan Solusi Praktis
Pendekatan ini telah memicu diskusi tentang siapa yang berhak mendapat akses ke konten web publik. Beberapa developer berargumen bahwa mereka harus mengontrol bagaimana konten mereka diakses, terutama ketika perusahaan AI mengklaim fair use sambil mengabaikan lisensi konten. Yang lain mempertanyakan apakah memblokir semua bot itu adil, karena beberapa mungkin proyek pribadi yang sah.
Akses ke konten saya adalah hak istimewa yang saya berikan kepada Anda. Saya memutuskan bagaimana Anda bisa mengaksesnya, dan melalui bot yang setup saya bingungkan dengan AI crawler milik korporasi AI anti-manusia bukanlah cara yang valid untuk mengaksesnya.
Komunitas teknis tetap terpecah dalam solusi. Sementara beberapa menyarankan menggunakan content delivery network seperti Cloudflare untuk perlindungan bot yang lebih mudah, yang lain menghargai pendekatan kustom yang mempertahankan kontrol atas pengalaman pengguna.
Dampak Performa Mendorong Inovasi
Developer mencatat bahwa menangani 10 permintaan per detik melibatkan lebih dari sekadar penyajian halaman sederhana - TLS handshake dan proses latar belakang dari jaringan sosial terfederasi menambah overhead yang signifikan. Server sederhana dapat dengan cepat kewalahan ketika crawler menggandakan beban empat kali atau lebih.
Tekanan performa ini telah mendorong strategi caching kreatif dan penerapan tantangan selektif. Sistem ini bertujuan untuk mengurangi beban berbahaya sambil melestarikan sumber daya untuk pengguna yang sah, membuktikan bahwa rekayasa yang bijaksana dapat menyelesaikan masalah yang tidak dapat diselesaikan oleh pemblokiran brute-force.
Referensi: humanely dealing with humungus crawlers