Lewati ke konten

Referensi Perintah Artisan CLI

Paket menyertakan kumpulan perintah Artisan CLI untuk administrasi, otomasi pemindaian, dan pemeliharaan server secara mandiri.


Menginisialisasi paket, mempublikasikan konfigurasi, migrasi database, konfigurasi Nginx hardened WAF, serta menerapkan aturan Apache .htaccess Hardened di folder public/.

Terminal window
php artisan security:install [options]
  • Jika public/.htaccess belum ada: installer membuat berkas baru dengan rewrite standar Laravel + blok proteksi hardening.
  • Jika public/.htaccess sudah ada: installer membuat berkas backup otomatis (.htaccess.backup-YYYYMMDD_HHMMSS) dan menambahkan blok hardening keamanan di bagian bawah berkas tanpa merusak aturan kustom pengguna.
  • Jika sudah terpasang: installer mendeteksi signature hardening dan tidak menduplikasi aturan.

Mekanisme Penyematan Variabel .env & .env.example:

Bagian berjudul “Mekanisme Penyematan Variabel .env & .env.example:”
  • Installer secara otomatis memeriksa apakah blok konfigurasi SECURITY_* sudah ada di .env dan .env.example.
  • Jika belum ada, installer menyematkan blok variabel lingkungan lengkap dengan komentar dokumentasi berbahasa Indonesia di akhir berkas.
  • Opsi --without-env dapat digunakan untuk melewati langkah ini jika Anda ingin mengonfigurasi variabel lingkungan secara manual.
  • --force: Menimpa seluruh berkas konfigurasi, migrasi, nginx.conf, dan public/.htaccess dengan template bawaan.
  • --without-nginx: Melewatkan publikasi berkas nginx.conf.
  • --without-htaccess: Melewatkan publikasi atau penambahan aturan pada public/.htaccess.
  • --with-htaccess: Memaksa pembaruan berkas public/.htaccess dengan aturan hardening keamanan.
  • --without-env: Melewatkan penyematan variabel konfigurasi ke berkas .env dan .env.example.

Memindai berkas log web server (Apache/Nginx) secara streaming, mendeteksi serangan yang ditolak di level web server, mengimpor ke tabel log keamanan, atau langsung memblokir IP penyerang zero-tolerance.

Terminal window
php artisan security:scan-logs [options]
  • --file=*: Berkas log yang diperiksa (dapat ditentukan lebih dari satu kali, misal: --file=/var/log/nginx/access.log --file=/var/log/nginx/access.log.1).
  • --ip=: Memfilter analisis hanya untuk satu alamat IP penyerang tertentu.
  • --since=: Membatasi baris sejak waktu tertentu (misal: "2 days ago" atau "2026-10-01 00:00").
  • --until=: Membatasi baris hingga waktu tertentu.
  • --min-level=: Saring level ancaman minimal (low, medium, high, critical).
  • --top=20: Jumlah IP penyerang teratas yang ditampilkan di tabel ringkasan.
  • --samples: Menampilkan contoh URI request yang mencurigakan untuk setiap IP.
  • --json: Mengeluarkan hasil analisis dalam format JSON murni (cocok untuk pipeline SIEM / alerting).
  • --import: Menyimpan temuan ke tabel database security_logs.
  • --block: Memblokir otomatis IP yang memicu signature zero-tolerance.
  • --dry-run: Mode simulasi: menampilkan apa saja yang akan diblokir/diimpor tanpa mengubah data apa pun di database.
Terminal window
# 1. Analisis cepat 24 jam terakhir tanpa ubah database
php artisan security:scan-logs --since="24 hours ago" --samples
# 2. Tangkap penyerang dan blokir langsung di database
php artisan security:scan-logs --since="6 hours ago" --import --block

Membuat, mengaudit, atau menghapus baseline hash SHA-256 integritas berkas aplikasi.

Terminal window
php artisan security:baseline [options]
  • (tanpa opsi): Membuat baseline baru jika belum ada, atau menampilkan ringkasan baseline yang tersimpan.
  • --check: Membandingkan kondisi berkas saat ini dengan baseline tanpa menulis apa pun ke disk (mode audit).
  • --prune: Menghapus berkas baseline yang tersimpan di storage/app/security-baseline.json.
  • --force: Membuat baseline baru dan menimpa baseline lama tanpa meminta konfirmasi interaktif.
Baseline SHA-256 dibuat: 2026-10-01 10:00:00 (1.420 berkas)
Status Audit:
- Berkas dimodifikasi : 0
- Berkas hilang : 0
- Berkas baru : 1 (public/uploads/backdoor.php) [PERINGATAN!]

Membuka blokir alamat IP yang terkena karantina WAF. Berfungsi sebagai Escape Hatch darurat jika administrator tidak sengaja memblokir IP mereka sendiri.

Terminal window
php artisan security:unblock-ip [ip] [options]
  • ip: Alamat IP yang ingin dibuka blokirnya (misal: 198.51.100.50).
  • --all: Membuka blokir seluruh IP yang sedang aktif sekaligus.
  • --list: Menampilkan daftar seluruh IP yang sedang diblokir aktif saat ini.
Terminal window
# Buka blokir satu IP
php artisan security:unblock-ip 198.51.100.50
# Lihat siapa saja yang sedang diblokir
php artisan security:unblock-ip --list
# Buka seluruh blokir saat insiden darurat
php artisan security:unblock-ip --all

Membersihkan riwayat log keamanan yang telah melewati batas retensi waktu.

Terminal window
php artisan security:prune-logs [options]
  • --days=: Mengesampingkan konfigurasi retensi hari (default: SECURITY_LOG_RETENTION_DAYS, biasanya 90 hari).
Terminal window
# Bersihkan log yang lebih tua dari 30 hari
php artisan security:prune-logs --days=30

Mendeteksi dan menghapus residu payload pentest atau injeksi yang tersimpan di dalam tabel aplikasi (misal {{7*7}}, .htaccess, ../../../public/).

Terminal window
php artisan security:purge-injected-data [options]
  • (tanpa --force): Menjalankan mode simulasi (hanya mendeteksi dan menampilkan daftar baris data yang tercemar tanpa menghapusnya).
  • --force: Menghapus baris data tercemar yang ditemukan.
  • --marker=*: Marker teks spesifik yang dicari (dapat diulang, default: canary pentest umum).
  • --model=*: Membatasi pencarian pada model Eloquent tertentu.