Laravel Shieldv1.2.x
Ban
Ban adalah keputusan paling berat yang bisa dibuat Shield: IP pelaku dikecualikan selama beberapa menit sampai beberapa hari.
Kapan ban muncul
Section titled “Kapan ban muncul”Ban muncul dari tiga arah berbeda.
1. Ban dari skor
Section titled “1. Ban dari skor”Kalau skor total melewati thresholds.ban (default 20) atau
thresholds.strong_ban (default 30), Shield memban.
2. Ban dari rule immediate_ban
Section titled “2. Ban dari rule immediate_ban”Beberapa rule ditandai immediate_ban: true, jadi request yang cocok diblokir
tanpa perlu melihat skor. sensitive.env termasuk kategori ini.
3. Ban yang berlaku lintas request
Section titled “3. Ban yang berlaku lintas request”Ini yang sering mengejutkan orang. Kalau sebuah IP sedang diban, setiap request berikutnya dari IP itu akan di-challenge — meskipun request barunya terlihat biasa saja.
Jadi orang yang tadi mencoba 30 URL berbeda, lalu kembali sepuluh menit kemudian, masih bertemu halaman challenge.
Panjang ban
Section titled “Panjang ban”'ban' => [ 'durations' => [15, 60, 360, 1440], // dalam menit],Nilai pertama dipakai untuk offense ke-1, kedua untuk ke-2, dan seterusnya:
| Offense | Durasi |
|---|---|
| 1 | 15 menit |
| 2 | 1 jam |
| 3 | 6 jam |
| 4 | 24 jam |
| 5 ke atas | 24 jam, plus penanda manual_review |
Kalau daftar Anda lebih pendek, nilai terakhir dipakai terus-menerus. Kalau lebih panjang, hanya lima offense pertama yang dihitung karena eskalasi dibatasi di lima.
Eskalasi
Section titled “Eskalasi”'escalation' => [ 'step' => 5,],Setiap offense menambah 5 poin ke skor request tersebut. Orang ketiga yang masih mencoba akan punya skor lebih tinggi daripada orang yang baru pertama kali menyerang. Akibatnya, yang terus mencoba makin cepat diblokir.
Kenapa request biasa tidak dihitung sebagai offense
Section titled “Kenapa request biasa tidak dihitung sebagai offense”Syaratnya harus salah satu dari ini terpenuhi:
- ada rule yang cocok, atau
- total sinyal perilaku minimal 10.
Request normal tidak menambah offense sama sekali. Kalau tidak begini, setiap pengunjung bisa kena ban hanya karena sedang memakai situs Anda.
Pelushan reputasi
Section titled “Pelushan reputasi”Riwayat offense tidak dihapus ketika ban berakhir. Masa tenang membuat angka turun:
| Yang dilupakan | Seberapa cepat |
|---|---|
| Jumlah offense | Turun 1 setiap 24 jam tanpa aktivitas. |
| Skor risiko | Turun 10 setiap 1 jam tanpa aktivitas. |
Jadi orang yang mencoba sekali lalu menghilang seminggu, kembali dengan jumlah offense yang jauh lebih rendah daripada saat pertama kejadian. Kedua nilai ini tidak pernah turun di bawah nol.
Melepas ban
Section titled “Melepas ban”Lewat perintah Artisan
Section titled “Lewat perintah Artisan”php artisan shield:release 203.0.113.10Sertakan alasannya:
php artisan shield:release 203.0.113.10 --reason="pelanggan salah ketik"Alasannya ikut tersimpan di riwayat, jadi tim Anda bisa melihat kenapa ban dilepas.
Lewat Admin API
Section titled “Lewat Admin API”Kalau admin.enabled aktif, buka /shield/bans, cari IP-nya, lalu tekan
Release.
Ban di cache
Section titled “Ban di cache”SHIELD_BAN_CACHE_TTL=30Ban aktif disimpan di cache 30 detik supaya pengecekan tidak membebani
database. Konsekuensinya: setelah shield:release, ban bisa masih aktif
sampai 30 detik. Untuk mengosongkan cache dengan segera:
php artisan cache:clearPenanda manual review
Section titled “Penanda manual review”Penanda ini muncul otomatis pada offense ke-5 dan seterusnya. Ban tetap berjalan seperti biasa — manual review adalah penanda untuk Anda periksa, bukan tindakan otomatis.
Pantau lewat:
php artisan shield:reportKalau terlalu banyak false positive
Section titled “Kalau terlalu banyak false positive”Urutan tindakan, dari yang paling tidak berisiko:
- Naikkan
modekeobservesementara. Semua ban baru berhenti tanpa menghapus data. - Baca report. Cari rule yang paling sering menyala tanpa alasan.
- Turunkan
scorerule itu, atau setenabled: false. - Tambahkan
rules.skip_pathskalau masalahnya hanya di endpoint tertentu. - Naikkan
ban.durations, jangan menghapus eskalasinya. - Terakhir, pakai
allowlist.pathsuntuk path tertentu. Ingat, allowlist tidak pernah melewati aturancritical.
Jangan pernah menyelesaikan false positive dengan allowlist.ips yang cakupannya
luas. Itu mematikan seluruh proteksi untuk semua orang di dalam jaringan itu.
Kalau IP asli ikut kena ban
Section titled “Kalau IP asli ikut kena ban”Penyebabnya hampir selalu salah satu dari dua hal:
- Trusted proxy belum diatur. Semua orang terlihat datang dari satu IP proxy. Perbaiki di Instalasi.
- IP memang dipakai banyak orang. Kantor, kampus, atau jaringan seluler
berbagi IP. Untuk kasus ini,
challengelebih tepat daripadaban.
Kalau Anda di belakang Cloudflare, pastikan bots.verification.ip_ranges sudah
diisi juga, supaya Cloudflare sendiri tidak ikut kena ban.
Powered by PT Ganadev Multi Solusi