Challenge & Trusted Cookie
IP yang dicurigai/banned mengakses route normal → middleware mengarahkan ke /shield/challenge →
pengunjung menyelesaikan widget (Turnstile/reCAPTCHA) atau menekan Verify (driver null) → server
memverifikasi → ban dirilis + cookie trusted diterbitkan → redirect balik.
Path critical tidak pernah diberi challenge — langsung diblok.
Driver
Section titled “Driver”Dikontrol challenge.driver (SHIELD_CHALLENGE).
| Driver | Nilai | Tampilan | Catatan |
|---|---|---|---|
| Cloudflare Turnstile | turnstile (default) |
Widget Cloudflare | Wajib site+secret key; verifikasi server-side. |
| Google reCAPTCHA | recaptcha / google_recaptcha |
Checkbox | Wajib site+secret key; verifikasi server-side. |
| Null/Test | null / test |
Form + tombol Verify | Untuk tes/offline; token test-token selalu lulus. |
Test key resmi (tanpa akun): Turnstile 3x00000000000000000000FF (interactive) / 1x00000000000000000000AA
(always pass); reCAPTCHA 6LeIxAcTAAAA... / 6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe.
Verifikasi server-side
Section titled “Verifikasi server-side”ChallengeController::verifymemanggil driver → provider memverifikasi token.- Token provider umumnya single-use (anti-replay).
- Endpoint verify di-rate-limit (
throttle:10,1) dan dilindungi CSRF (groupweb). - Redirect setelah sukses dibatasi ke path relatif same-origin (anti open-redirect, termasuk backslash/
%5c/%2f). - Middleware mengirim param
redirectsebagai path relatif (/home, bukan URL penuh) → user kembali ke halaman asal yang benar.
Trusted cookie
Section titled “Trusted cookie”- Enkripsi (mengikuti
APP_KEY),HttpOnly,Secure,SameSite=Lax. - TTL default
trusted.ttl_minutes(60). - Terikat ringan ke hash User-Agent + prefix IP kasar (IPv4
/24, IPv6/64) — user sah di belakang NAT tidak terus-menerus ditantang. - Tidak pernah menjadi bypass untuk rule critical.
- Cookie invalid/expired → diperlakukan sebagai tidak trusted.
Halaman challenge & blok
Section titled “Halaman challenge & blok”- Halaman adalah Blade view (
shield::challenge,shield::blocked) bertema dark cyber, self-contained. - Publikasikan dengan
--tag=shield-viewsuntuk mengedit, atau ubah branding viabranding.*. - Widget memakai callback
onChallengeSolved(token)yang menyalin token keshield_challenge_tokenlalu submit — halaman tidak menggantung setelah widget diselesaikan.
Powered by PT Ganadev Multi Solusi