Apa Itu CAPTCHA dan Bagaimana Cara Kerjanya? Setiap Jenis Dijelaskan

CAPTCHA adalah tes yang digunakan situs web untuk membedakan manusia dari skrip. Jika Anda pernah mengklik “I’m not a robot”, mengetik ulang huruf melengkung dari sebuah gambar, atau memilih setiap kotak yang berisi lampu lalu lintas, berarti Anda pernah mengerjakannya. Banyak di antaranya tidak pernah Anda lihat, karena yang modern memutuskan di latar belakang dan hanya mengganggu ketika ada sesuatu yang tampak janggal.
Jadi apa itu CAPTCHA dalam praktik? Berikut kepanjangan akronimnya, enam tipe yang benar-benar akan Anda temui, dan bagaimana masing-masing mengambil keputusan.
Kepanjangan dari CAPTCHA
CAPTCHA adalah singkatan dari Completely Automated Public Turing test to tell Computers and Humans Apart. Nama panjang, ide sederhana: tampilkan tugas yang mudah bagi manusia dan sulit bagi perangkat lunak.
Bagian “sulit bagi perangkat lunak” adalah bagian yang terus bergerak. Teka-teki teks melengkung benar-benar sulit bagi mesin pada 2003. Pengenalan karakter menyusul, jadi tesnya beralih ke gambar, lalu ke perilaku, lalu ke menilai Anda tanpa menampilkan apa pun sama sekali. Setiap generasi ada karena generasi sebelumnya berhenti bekerja.
Enam jenis yang benar-benar akan Anda temui
Hampir setiap CAPTCHA di web adalah salah satu dari ini.
1. CAPTCHA Teks
Huruf dan angka yang terdistorsi di dalam sebuah gambar. Anda mengetik ulang apa yang Anda lihat. Ini adalah format aslinya dan kini memudar, karena pengenalan karakter sudah menanganinya dengan baik. Anda masih akan menemuinya di forum lama, portal pemerintah warisan, dan alat internal. Membacanya secara terprogram adalah pekerjaan sebuah pemecah CAPTCHA gambar melakukannya.
2. Pemilihan gambar
Sebuah kisi foto dan sebuah instruksi: pilih busnya, penyeberangannya, sepedanya. Inilah format yang paling banyak dibayangkan orang saat mendengar kata itu. Biasanya itu adalah reCAPTCHA yang menaikkan tingkat tantangan, karena ada sesuatu dari permintaan Anda yang sudah tampak otomatis.
3. Checkbox
Kotak centang “I’m not a robot”. Kliknya sendiri hampir tidak membuktikan apa pun. Yang penting adalah semua yang diukur di sekitarnya: bagaimana kursor tiba, seperti apa browsernya, apa yang belakangan dilakukan IP itu. Lolos dan Anda masuk. Gagal dan Anda mendapat kisi gambar.
4. Invisible
Mesin yang sama, tanpa checkbox. Verifikasi terpicu saat halaman dimuat atau formulir dikirim. Sebagian besar pengunjung tidak pernah melihat apa pun, dan tantangan hanya muncul ketika sinyalnya lemah.
5. Berbasis skor
Tidak ada teka-teki sama sekali. Sistem mengembalikan angka yang memperkirakan seberapa manusiawi interaksi itu terlihat, dan situs memutuskan apa yang harus dilakukan dengannya: izinkan, beri tantangan, atau blokir. Ini lebih ringan bagi pengunjung dan jauh lebih merepotkan bagi siapa pun yang mengimplementasikannya, karena kini situslah yang memegang logika ambang batas.
6. Cloudflare Turnstile
Alternatif dari Cloudflare, dibuat untuk memverifikasi dengan interaksi terlihat sesedikit mungkin. Ia muncul sebagai widget kecil di dalam formulir, atau sebagai interstisial satu halaman penuh saat tantangan berjalan. Halaman kami tentang Cloudflare Turnstile membahas perbedaan kedua mode tersebut dalam praktik.
Anda dapat mencoba versi langsung dari semuanya di Halaman demo CAPTCHA.
Cara CAPTCHA mengambil keputusan
Di dalam halaman, sebuah CAPTCHA biasanya berupa satu elemen kontainer dan satu skrip:
<!-- A reCAPTCHA v2 checkbox: one div, one script. -->
<div class="g-recaptcha" data-sitekey="YOUR_SITEKEY"></div>
<script src="https://www.google.com/recaptcha/api.js"
async defer></script>
<!-- On success the widget writes a token into a hidden field
called g-recaptcha-response, which posts with the form. -->Puzzle yang terlihat, jika memang ada, adalah bagian terkecilnya. Di baliknya, penyedia menimbang sinyal yang tidak pernah Anda sentuh secara langsung:
- gerakan mouse, scrolling dan ritme pengetikan
- karakteristik browser dan perangkat
- berapa banyak permintaan yang datang dari IP tersebut, dan apa yang mereka lakukan
- cookie dan riwayat sebelumnya dengan penyedia
- waktu, misalnya formulir yang dikirim lebih cepat daripada yang bisa dibaca manusia
Kemudian hasilnya dikirim sebagai token. Widget memberi browser Anda sebuah string berumur pendek, formulir mengirimkannya, dan backend situs menukarkan token itu dengan penyedia untuk mengetahui apakah Anda lolos. Tidak ada yang diputuskan di browser Anda, itulah sebabnya menyunting halaman tidak pernah membuat Anda lolos.
Mengapa situs web menggunakan CAPTCHA
Karena penyalahgunaan otomatis itu murah dan cepat. Satu skrip dapat menembakkan ribuan permintaan ke sebuah formulir dalam waktu yang dibutuhkan seseorang untuk mengisinya sekali. Tanpa pemeriksaan di depan, situs kecil terkena sama mudahnya dengan situs besar.
Target yang biasa:
- spam melalui formulir kontak dan komentar
- pendaftaran akun palsu
- credential stuffing terhadap halaman masuk
- mengambil data konten, harga atau daftar produk
- penyalahgunaan uji coba gratis, kupon dan giveaway
- checkout dan penimbunan stok
CAPTCHA tidak membuat semua itu mustahil. CAPTCHA membuatnya cukup mahal sehingga sebagian besar percobaan oportunistik mencari sasaran lain.
Mengapa mereka membuat orang frustrasi
Karena biayanya menimpa semua orang, bukan hanya bot. Keluhan umum, semuanya sah:
- kisi gambar yang terus memuat ulang apa pun yang Anda klik
- teks terlalu terdistorsi untuk dibaca
- challenge yang muncul di setiap halaman, bukan hanya di halaman berisiko
- positif palsu pada VPN, IP kantor bersama, dan browser privasi
- pembaca layar dan gangguan motorik ditangani dengan buruk
Itulah trade-off yang sebenarnya. Naikkan tingkat perlindungan dan Anda memblokir lebih banyak penyalahgunaan sekaligus lebih banyak pelanggan. Karena itulah industri terus bergerak menuju pemeriksaan tak terlihat dan berbasis skor: perlindungan yang sama, dengan lebih sedikit yang menimpa orang-orang yang sebenarnya bukan masalah.
CAPTCHA adalah satu lapisan, bukan seluruh pertahanan
Tumpukan anti-bot modern jarang berhenti di CAPTCHA. Di sekitarnya ada pembatasan laju, reputasi IP, fingerprinting browser, pemeriksaan perangkat, analisis perilaku dan pemantauan sesi.
Itulah sebabnya dua situs yang menggunakan penyedia yang sama berperilaku sama sekali berbeda. Penyedia memasok sinyal. Setiap situs menetapkan ambang batasnya sendiri, dan jawabannya sendiri atas seberapa mahal sinyal yang lemah bagi Anda.
Ini juga menjelaskan asimetri yang membuat frustrasi ketika satu situs meloloskan Anda begitu saja sementara situs lain menampilkan empat kisi gambar berturut-turut pada koneksi yang sama.
Pertanyaan yang sering diajukan
Apa itu CAPTCHA secara sederhana?
Tes yang digunakan situs web untuk memeriksa apakah pengunjung adalah manusia dan bukan skrip. Bisa berupa teka-teki, checkbox, atau pemeriksaan diam-diam di latar belakang yang tidak pernah Anda sadari.
Mengapa situs web menggunakan CAPTCHA?
Untuk menekan spam, pendaftaran palsu, login brute-force, scraping dan penyalahgunaan otomatis lainnya. Cara kerjanya adalah membuat setiap percobaan ada biayanya, sehingga otomatisasi massal tidak lagi murah.
Apa saja jenis utama CAPTCHA?
Teks, pemilihan gambar, checkbox, invisible, berbasis skor, dan Cloudflare Turnstile. Dua yang pertama menampilkan teka-teki kepada Anda. Sisanya memutuskan sebagian besar atau sepenuhnya dari sinyal yang tidak pernah Anda lihat.
Apakah CAPTCHA selalu terlihat?
Tidak. Sistem invisible dan berbasis skor berjalan tanpa menampilkan apa pun, dan hanya memunculkan tantangan ketika permintaan terlihat mencurigakan. Jika sebuah situs terasa tidak memiliki CAPTCHA, bisa jadi itu hanya CAPTCHA yang terus Anda lewati.
Apakah CAPTCHA menghentikan semua bot?
Tidak, dan memang bukan itu tujuannya. Ia menaikkan biaya otomatisasi. Penyerang yang gigih tetap bisa lolos, dan justru karena itulah ia berdampingan dengan pembatasan laju, fingerprinting, dan pemeriksaan reputasi, bukan menggantikannya.
Ringkasan
CAPTCHA adalah filter murah antara pengunjung dan sebuah tindakan. Teka-teki yang terlihat hanyalah bagian kecilnya, sinyal di sekitarnya melakukan sebagian besar pekerjaan, dan hasilnya berjalan sebagai token yang tidak dapat dipalsukan browser Anda. Enam format mencakup hampir semua yang akan Anda temui, dan trennya jelas mengarah ke yang tidak pernah Anda lihat.
Implementasi Google adalah yang paling sering Anda temui, dan ada penjelasan tersendiri di apa itu reCAPTCHA dan cara kerjanya. Jika Anda berada di sisi sebaliknya, yaitu menangani tantangan di dalam crawler atau test suite, lihat Penanganan CAPTCHA untuk web scraping. CapSkip sendiri adalah pemecah captcha tanpa batas yang berjalan di komputer Anda sendiri.
