Semua opsi ada di config/shield.php (setelah publish). Semua punya default yang aman.
| Kunci |
Env |
Default |
Keterangan |
enabled |
SHIELD_ENABLED |
true |
Aktif/nonaktif middleware. |
mode |
SHIELD_MODE |
observe |
observe | challenge | enforce. |
app_id |
SHIELD_APP_ID |
default |
Namespace cache & identitas aplikasi. |
response_code |
SHIELD_RESPONSE_CODE |
404 |
Kode respons blok (stealth). |
decode_depth |
— |
2 |
Maksimal dekode URL (0–3). |
fail_mode |
SHIELD_FAIL_MODE |
open |
open | closed saat infrastruktur mati. |
rule_version |
— |
1.0.0 |
Versi aturan (dicatat di event). |
| Kunci |
Default |
Keterangan |
thresholds.challenge |
10 |
Skor mulai challenge. |
thresholds.ban |
20 |
Skor mulai ban sementara. |
thresholds.strong_ban |
30 |
Skor ban kuat. |
ban.durations |
[15, 60, 360, 1440] |
Durasi ban (menit) per offense 1..4+. |
escalation.step |
5 |
Tambahan skor per offense (maks 5 offense). |
| Kunci |
Env |
Default |
Keterangan |
challenge.driver |
SHIELD_CHALLENGE |
turnstile |
turnstile | recaptcha | null. |
challenge.turnstile.* |
SHIELD_TURNSTILE_* |
'' |
Site/secret key Turnstile. |
challenge.recaptcha.* |
SHIELD_RECAPTCHA_* |
'' |
Site/secret key reCAPTCHA. |
| Kunci |
Default |
Keterangan |
behavior.unique_uri_limit |
25 |
Ambang burst URI unik per window. |
behavior.window_seconds |
60 |
Jendela waktu perilaku. |
behavior.not_found_limit |
20 |
Ambang enumerasi 404 per window. |
behavior.missing_referer_signal |
true |
Sinyal lemah POST tanpa Referer. |
behavior.suspicious_user_agents |
[] |
Marker UA scanner klien generic (sinyal +2). |
behavior.scanner_user_agents |
sqlmap, nikto, gobuster, … |
Marker tool scanner (sinyal kuat scanner_tool_ua). |
behavior.scanner_ua_signal |
4 |
Skor sinyal tool scanner UA. |
behavior.path_rate_limit |
30 |
Ambang request per path umum. |
behavior.sensitive_path_rate_limit |
8 |
Ambang per path endpoint auth. |
behavior.sensitive_paths |
/login, /wp-login.php, … |
Endpoint auth yang dilindungi rate-limit lebih ketat. |
| Kunci |
Env |
Default |
Keterangan |
bots.mode |
SHIELD_BOT_MODE |
challenge |
off | observe | challenge. |
bots.known_agents |
— |
googlebot, bingbot, … |
Daftar crawler dikenal. |
bots.unverified_claim_signal |
SHIELD_BOT_UNVERIFIED_CLAIM_SIGNAL |
4 |
Skor klaim crawler gagal verifikasi. |
bots.verification.enabled |
SHIELD_BOT_VERIFICATION_ENABLED |
true |
Nyalakan verifikasi identitas crawler. |
bots.verification.ttl_hours |
SHIELD_BOT_VERIFICATION_TTL_HOURS |
24 |
Cache hasil verifikasi per IP. |
bots.verification.hostnames |
— |
googlebot → .googlebot.com, … |
Suffix PTR per agent. |
bots.verification.ip_ranges |
— |
[] |
CIDR allowlist per agent (fallback tanpa DNS). |
| Kunci |
Env |
Default |
Keterangan |
rules.packs.wordpress |
SHIELD_RULES_PACK_WORDPRESS |
false |
Rule plugin WordPress. |
rules.packs.injection |
SHIELD_RULES_PACK_INJECTION |
true |
Rule SQLi/XSS/LFI/command-injection. |
inspection.body.enabled |
SHIELD_INSPECTION_BODY_ENABLED |
true |
Periksa body POST/JSON untuk rule injection. |
inspection.body.max_bytes |
SHIELD_INSPECTION_BODY_MAX_BYTES |
65536 |
Batas body yang diperiksa (multipart di-skip; body tak pernah di-log). |
| Kunci |
Default |
Keterangan |
logging.events |
true |
Catat event keamanan. |
logging.retention_days |
30 |
Retensi event (default shield:prune --days). |
privacy.sensitive_query_parameters |
token, password, key, … |
Param query yang di-mask (***) saat disimpan. |
| Kunci |
Env |
Default |
Keterangan |
admin.enabled |
SHIELD_ADMIN_ENABLED |
false |
Aktifkan surface admin. |
admin.middleware |
— |
['web','auth'] |
Middleware route admin. |
admin.authorize |
SHIELD_ADMIN_AUTHORIZE |
'' |
Nama Gate; semua aksi admin butuh can($gate). |
admin.prefix |
— |
shield |
Prefix route admin. |
| Kunci |
Env |
Default |
Keterangan |
performance.max_uri_length |
SHIELD_MAX_URI_LENGTH |
2048 |
Batas panjang URI. |
performance.ban_cache_ttl_seconds |
SHIELD_BAN_CACHE_TTL |
30 |
TTL cache ban aktif. |
views.blocked / views.challenge |
SHIELD_VIEW_BLOCKED / SHIELD_VIEW_CHALLENGE |
shield::blocked / shield::challenge |
View kustom. |
branding.title |
SHIELD_BRANDING_TITLE |
Ganadev Laravel Shield |
Judul halaman. |
branding.accent_color |
SHIELD_BRANDING_ACCENT |
#22d3ee |
Warna aksen. |
branding.background_color |
SHIELD_BRANDING_BG |
#0b1220 |
Warna latar. |
branding.show_rule_id |
SHIELD_BRANDING_SHOW_RULE_ID |
true |
Tampilkan rule id di halaman blok. |
allowlist.hosts / allowlist.paths / allowlist.ips — pengecualian; tidak pernah mengecualikan rule critical.
- Konfigurasi divalidasi saat boot; nilai tidak dikenal akan memicu
InvalidConfigException.