Cloudflare Turnstile: cara kerjanya dan cara solve-nya (segera hadir)
Cloudflare Turnstile adalah captcha yang biasanya tidak meminta apa pun dari pengunjung. Ia menjalankan pemeriksaan di browser, dan dalam sebagian besar kasus lolos tanpa puzzle. Jika ragu, ia mungkin menampilkan langkah interaktif singkat. Widget kemudian menulis token ke form, dan situs memverifikasi token itu ke Cloudflare. Dukungan Scarnox untuk Turnstile segera hadir. Panduan ini menjelaskan cara kerja widget, mengapa sering disalahpahami sebagai tantangan lain, dan pendekatan umum untuk pekerjaan yang sah.
Cara widget dipasang
Halaman menyertakan elemen container dengan class cf-turnstile dan atribut data-sitekey. Script Turnstile dimuat, menjalankan pemeriksaannya, dan menambahkan input tersembunyi bernama cf-turnstile-response. Nilai input itu adalah token. Form mengirimkannya bersama field lain, dan backend situs meneruskan token itu ke endpoint verifikasi Cloudflare bersama secret key situs.
Seperti widget token lainnya, verifikasi terjadi di server. Form yang menerima nilai apa pun di field itu tanpa memeriksanya sebenarnya tidak terlindungi.
Mode dan artinya bagi script
Turnstile bisa berjalan dalam lebih dari satu mode. Dalam mode managed, Cloudflare memutuskan apakah akan menampilkan langkah interaktif. Dalam mode non-interactive, widget tidak pernah meminta apa pun dari pengunjung dan hanya menampilkan status. Dalam mode invisible, tidak ada yang ditampilkan sama sekali. Untuk script, mode mengubah apa yang terlihat di halaman, tetapi hasilnya sama: sebuah token di field form, diverifikasi di server.
Token berumur pendek dan sekali pakai. Kirim form segera setelah widget menghasilkan token, dan jangan memakai ulang token yang sudah diverifikasi.
Mengapa ia menghalangi automation
Turnstile memeriksa sinyal dari environment browser dan perilaku sesi. Browser headless default, fitur browser yang hilang atau tidak konsisten, sesi baru tanpa riwayat, dan alamat jaringan yang mencurigakan semuanya bisa mendorong keputusan ke arah tantangan atau blokir. Sinyal-sinyal ini berasal dari keluarga yang sama dengan pemeriksaan berbasis skor lainnya, itulah sebabnya pendekatannya serupa.
Pendekatan yang sah
Berikut pendekatan yang bekerja untuk pekerjaan yang sah:
- Gunakan browser sungguhan untuk halaman yang memuat Turnstile. Profil browser normal dengan pengaturan yang konsisten lebih kecil kemungkinannya ditantang dibanding build automation yang polos. Panduan deteksi browser headless mencantumkan sinyal yang umum.
- Tetap dalam sesi. Pertahankan cookie di seluruh halaman dalam workflow Anda, agar pengunjung tidak terlihat baru di setiap request.
- Atur ritme request Anda. Ritme yang stabil dan menyerupai manusia mengurangi tantangan jauh lebih banyak dibanding trik apa pun.
- Baca aturan situs yang dilindungi Cloudflare terlebih dahulu. Banyak situs yang dilindungi mempublikasikan API atau feed. Periksa itu sebelum membangun workflow browser. Panduan scraping situs yang dilindungi Cloudflare membahas pendekatannya lebih dalam.
- Gunakan test key saat development. Cloudflare mempublikasikan site key test untuk development, yang menghasilkan hasil yang dapat diprediksi tanpa pemeriksaan sungguhan. Itu untuk integration test Anda sendiri, bukan untuk traffic produksi.
- Tanyakan pemiliknya. Jika Anda menjalankan situsnya, Anda bisa menyesuaikan pengaturan Turnstile untuk path yang dipakai test otomatis Anda. Jika tidak, minta allowlist atau API.
Apa yang akan dilakukan solver Turnstile
Solver Turnstile berbasis token akan mengambil sitekey dan URL halaman, menghasilkan token yang valid untuk field cf-turnstile-response, lalu mengembalikannya ke kode Anda. Kode Anda menulis token ke form dan mengirimkannya dengan segera. Ini pola yang sama dengan integrasi PopularCaptcha yang live, dengan tipe task yang berbeda.
Saat ini Scarnox belum men-solve Turnstile secara live. Satu-satunya tipe task yang live adalah PopularCaptcha, proxyless. Turnstile segera hadir, dan detail requestnya akan ada di referensi API saat dirilis. Jangan membangun berdasarkan antarmuka yang diasumsikan sebelum itu.
Kesalahan yang umum
Integrasi Turnstile biasanya gagal dengan beberapa cara yang bisa diprediksi. Yang paling umum adalah memakai token setelah kedaluwarsa atau setelah sudah diverifikasi. Token bersifat sekali pakai, jadi retry setelah pengiriman form yang gagal memerlukan hasil widget yang baru, bukan nilai lama. Kedua, sitekey yang milik environment lain. Sitekey development di halaman produksi, atau sebaliknya, menghasilkan kegagalan verifikasi yang terlihat seperti bug di kode Anda. Periksa key mana yang dipakai halaman sebelum men-debug hal lain.
Kesalahan lain yang sering terjadi adalah menganggap langkah interaktif sebagai kegagalan. Dalam mode managed, Turnstile mungkin menampilkan langkah singkat kepada sebagian pengunjung, dan script yang mengharapkan lolos senyap akan macet di sana. Bangun alurnya agar menunggu hasil widget, dan tangani kasus ketika widget meminta lebih.
Terakhir, jangan mengeraskan nama field di kode tanpa memeriksanya di halaman yang sedang live. Input cf-turnstile-response adalah standarnya, tetapi situs bisa membungkus widget secara berbeda, dan membaca form yang dirender lebih cepat dibanding menebak.
Scraping secara bertanggung jawab
Scraping situs yang dilindungi Turnstile adalah pekerjaan yang umum, dan itu memerlukan kehati-hatian yang sama seperti scraping lainnya. Cek robots.txt dan terms of service. Jaga rate tetap rendah, dan jangan mengumpulkan data pribadi yang tidak Anda butuhkan. Jika situs memiliki API, utamakan itu. Panduan apakah web scraping legal membahas pertanyaan utamanya.
Persiapan
Buat akun untuk mulai dengan kredit uji coba gratis, tanpa kartu. Saat dukungan Turnstile rilis, Anda bisa mengujinya di halaman Anda sendiri sebelum menjalankan apa pun terhadap situs yang live.