Pasang gerbang di depan seluruh situs pada reverse proxy-mu
Cara normal memakai Caputchin adalah menyisipkan widget di sebuah halaman dan memverifikasi token dari backend-mu. Itu butuh tempat untuk menaruh widget dan backend untuk memeriksa token. Gerbang halaman proxy tak butuh keduanya. Ia menempatkan verifikasi satu halaman penuh di depan seluruh situs atau rute pada reverse proxy-mu: seorang pengunjung merampungkan satu verifikasi, memperoleh pass berumur pendek, dan menjelajahi situs sampai pass itu kedaluwarsa. Verifikasinya berupa game singkat atau konfirmasi sekali ketuk, mana pun yang kamu pilih. App yang dilindungi tak pernah disentuh.
Karena tak ada yang ditambahkan ke app itu sendiri, inilah cara melindungi host yang tak bisa kamu sisipi skrip, sebuah portal login mono-halaman terkompilasi, sebuah appliance, atau sebuah alat internal yang duduk di balik proxy autentikasi.
Untuk siapa ia
Raih gerbang saat widget inline tak cocok:
- App tak punya tempat untuk widget. Sebuah portal login tersegel (seperti Authelia), sebuah appliance vendor, atau UI apa pun yang tak bisa kamu edit.
- Kamu ingin memasang gerbang pada seluruh permukaan, bukan satu formulir. "Buktikan kamu manusia sebelum mencapai situs ini" ketimbang pemeriksaan pada satu pengiriman tunggal.
- Kamu tak punya backend untuk memverifikasi token. Proxy yang menegakkan aturan; tak ada panggilan
/siteverifyuntuk ditulis.
Untuk halaman atau formulir normal yang kamu kendalikan, sisipkan widget saja, ia lebih ringan dan tak mengalihkan pengunjung. Jika kamu punya formulir tapi tak punya backend, verifikasi terhosting lebih pas.
Bagaimana ia bekerja
Satu penyelesaian membeli banyak permintaan. Pengunjung merampungkan verifikasi sekali; setelah itu sebuah cookie pihak-pertama meloloskan permintaannya sampai kedaluwarsa.
Proxy membuat panggilan otorisator kecil ke Caputchin di tiap permintaan. Saat permintaan tak membawa pass sah, Caputchin menjawab 401 dan proxy mengalihkan pengunjung ke tantangan terhosting. Saat pass ada dan sah, Caputchin menjawab 204 dan proxy meloloskan permintaan ke app-mu.
Cookie izin lewat
Pass hidup dalam sebuah cookie pihak-pertama, bernama cpt_gate secara default dan bisa diganti nama per kunci situs, di-set pada domain-mu sendiri oleh sebuah callback kecil yang kamu hosting (di /__cpt/callback secara default, dan itu pun bisa dipindah). Ia adalah token bertanda tangan berumur pendek, tak terikat ke perangkat, jadi keamanannya datang sepenuhnya dari atribut cookie (HttpOnly, Secure, SameSite=Lax) dan TTL pendek yang kamu pilih. Karena ia men-set cookie pada pengunjungmu, ungkapkan itu di kebijakan cookie-mu. Panduan penyiapan menelusuri callback dan atribut yang diperlukan.
Apa yang sengaja ditinggalkan
- Tanpa gerbang swahosting. Caputchin menghosting tantangan dan memverifikasi pass; kamu tak menjalankan verifikator. Proxy-mu hanya meneruskan cookie dan mengikuti pengalihan.
- Pemeriksaan per permintaan, bukan validasi token lokal. Proxy bertanya ke Caputchin di tiap permintaan. Mode gagal yang kamu pilih (terbuka atau tertutup) menentukan apa yang terjadi jika Caputchin sesaat tak terjangkau.
- Izin lewat per kunci situs, berskop cookie. Sebuah pass meloloskan satu origin, bukan seluruh akun atau beberapa domain, karena ia cookie pihak-pertama biasa.
- Tanpa teks kustom. Yang kamu pilih adalah bahasa dan tema halaman verifikasi, bukan kata-katanya.
- Bukan sesi atau login. Gerbang membuktikan seorang manusia mencapai situs; app-mu tetap mengurus autentikasi dan batas laju-nya sendiri. Keduanya bertumpuk.
Apa yang pengunjung lihat
Halaman verifikasi berbicara dalam bahasa pengunjung sendiri dan mengikuti preferensi terang atau gelapnya, dan ia membawa merek yang sama dengan widget pada kunci situs ini, karena ia menurunkan keduanya dari kunci situs yang sama yang sudah kamu atur. Sebagai gantinya kamu bisa mematok satu bahasa atau satu tema, dan memilih antara game dan kotak centang sekali ketuk, di halaman Gerbang proxy milik kunci situs. Lihat Sesuaikan tantangan.
Lihat juga
- Siapkan gerbang halaman proxy: aktifkan dan sambungkan proxy-mu ujung ke ujung.
- Sesuaikan tantangan: game atau kotak centang, bahasa, tema, nama cookie, jalur callback.
- Resep reverse proxy: nginx, Traefik, Caddy, dan contoh terpecahkan Authelia.
- Statistik gerbang halaman proxy: baca rasio lolos langsung terhadap tantangan.
- Verifikasi terhosting: opsi tanpa backend saat kamu memang punya formulir untuk diarahkan ke kami.