Keamanan bukan satu chapter, melainkan kebiasaan yang tersebar di seluruh keputusan teknis — dari nama kolom $fillable sampai flag --no-dev saat build. Section Keamanan Aplikasi
telah membahas tiap pertahanan secara mendalam; chapter ini memampatkan semuanya menjadi satu checklist yang bisa dijalankan ulang tiap kuartal, lalu memetakannya ke standar industri OWASP agar kita tahu pertahanan mana menjawab risiko mana. Gunakan sebagai agenda audit sebelum rilis besar, bukan sebagai pengganti pemahaman.
Cara memakainya: blokir satu jam, buka aplikasi dan repositorinya berdampingan, lalu lewati tabel baris demi baris sambil menandai tiap praktik lulus, gagal, atau tidak relevan. Baris yang gagal menjadi backlog minggu itu juga — bukan diskusi. Ritual sederhana ini terasa membosankan justru karena itulah tanda aplikasi sehat; checklist keamanan yang selalu hijau berarti tidak ada kejutan saat audit sungguhan datang dari pihak luar.
Checklist Keamanan per Area #
| Area | Praktik kunci | Rujukan Course |
|---|---|---|
| Validasi | Semua input eksternal tervalidasi; FormRequest untuk aturan kompleks | Validation Rules |
| Autentikasi | Password ter-hash bcrypt/argon2; rate limit login; reset token kedaluwarsa | Password Security |
| Otorisasi | Policy/Gate di tiap route tulis; cek kepemilikan resource | Policies |
| CSRF | @csrf di semua form; VerifyCsrfToken aktif | CSRF Protection |
| XSS | {{ }} sebagai default; audit tiap {!! !!} | Cross-Site Scripting |
| SQL Injection | Query builder/Eloquent; binding ? untuk query mentah | SQL Injection Prevention |
| Mass assignment | $fillable eksplisit; hindari $guarded = [] | Mass Assignment Protection |
| Upload file | Validasi mime + ukuran; simpan di luar root publik | Secure File Uploads |
| Secret | .env di luar Git; kredensial per-environment | Secret Management |
| Konfigurasi | APP_DEBUG=false di produksi; APP_ENV=production | Secure Configuration |
| Rate limiting | Throttle di login dan endpoint berat | Rate Limiting |
| Dependensi | composer audit berkala; upgrade sebelum masa support habis | Security Auditing |
Dokumentasi resmi menyediakan rujukan padat untuk tiga area yang paling sering ditanya: aturan lengkap di halaman validation , mekanisme Gates dan Policies di authorization , dan cara kerja token CSRF di csrf . Ketiganya sebaiknya dibuka setiap kali checklist di atas menemukan baris yang membuat kita ragu — jawaban resminya jarang lebih panjang dari satu halaman.
Pemetaan ke OWASP Top 10 #
Standar OWASP Top 10 adalah bahasa bersama auditor keamanan dunia. Tabel ini menunjukkan fitur Laravel mana yang menjawab tiap risiko — berguna saat berkomunikasi dengan tim keamanan atau klien yang memakai kosakata OWASP.
| Risiko OWASP | Jawaban Laravel | Course |
|---|---|---|
| A01 Broken Access Control | Gates, Policies, middleware auth, can | Authorization |
| A02 Cryptographic Failures | bcrypt/argon2, Crypt (AES-256), HTTPS | Password Security |
| A03 Injection | Eloquent bindings, escaping Blade | SQL Injection Prevention |
| A04 Insecure Design | Validasi ketat, FormRequest, action class | Form Request Classes |
| A05 Security Misconfiguration | APP_DEBUG=false, config cache, header aman | Secure Configuration |
| A06 Vulnerable Components | composer audit, kebijakan support Laravel | Security Auditing |
| A07 Identification & Auth Failures | Rate limiting, session regenerate, verifikasi email | Authentication Security |
| A08 Software & Data Integrity | Signed URL, validasi upload, composer.lock terkunci | Secure File Uploads |
| A09 Logging Failures | Channel log terstruktur, audit trail | Logging Configuration |
| A10 SSRF | Validasi URL di HTTP client, allowlist host | Mengakses REST API |
Pemetaan ini bukan sertifikasi — sebuah baris “ada Laravel-nya” tidak otomatis berarti “aman di aplikasi kita”. Yang menjadikannya aman adalah konfigurasi benar dan kebiasaan konsisten, itulah mengapa checklist di atas perlu dijalankan ulang, bukan sekali seumur hidup. Gunakan tabel ini dengan arah sebaliknya juga: saat auditor menandai satu risiko OWASP sebagai temuan, kolom jawaban Laravel menunjuk langsung fitur mana yang layak diperiksa konfigurasinya lebih dulu.
Memeriksa Dependensi #
Bagian audit yang paling mekanis adalah memindai dependensi terhadap basis data advisory publik. Composer memuatnya bawaan; berikut hasil nyatanya di sandbox Course ini:
composer audit --no-devOutput yang Dihasilkan:
No security vulnerability advisories found.Output bersih berarti versi di composer.lock tidak cocok dengan satu pun advisory yang diketahui saat ini — nilainya ada pada pengulangan, karena advisory baru terbit kapan saja. Pasangannya yang berguna di sesi yang sama adalah composer outdated --direct, yang memperlihatkan dependensi langsung kita yang sudah tertinggal versinya. Jadikan kedua perintah ini bagian dari CI (ide konfigurasinya ada di chapter Security Auditing
) dan pantau catatan rilis
untuk mengetahui patch keamanan framework.
Checklist ini menjaga aplikasi tetap utuh selama hidupnya. Namun bagaimana pun ketatnya persiapan, masalah tetap akan muncul di lapangan — dan chapter berikutnya menyediakan prosedur baku untuk menelusurinya: Panduan Debugging .