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 proxy tak butuh keduanya. Ia menempatkan verifikasi satu halaman penuh di depan seluruh situs atau rute pada reverse proxy-mu: seorang pengunjung menyelesaikan satu game, memperoleh pass berumur pendek, dan menjelajahi situs sampai pass itu kedaluwarsa. 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 memainkan game 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, di-set pada domain-mu sendiri oleh sebuah callback kecil yang kamu hosting. 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.
- Bukan sesi atau login. Gerbang membuktikan seorang manusia mencapai situs; app-mu tetap mengurus autentikasi dan batas laju-nya sendiri. Keduanya bertumpuk.
Lihat juga
- Siapkan gerbang proxy: aktifkan dan sambungkan proxy-mu ujung ke ujung.
- Resep reverse proxy: nginx, Traefik, Caddy, dan contoh terpecahkan Authelia.
- Statistik gerbang proxy: baca rasio lolos langsung terhadap tantangan.
- Verifikasi terhosting: opsi tanpa backend saat kamu memang punya formulir untuk diarahkan ke kami.