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 #

AreaPraktik kunciRujukan Course
ValidasiSemua input eksternal tervalidasi; FormRequest untuk aturan kompleksValidation Rules
AutentikasiPassword ter-hash bcrypt/argon2; rate limit login; reset token kedaluwarsaPassword Security
OtorisasiPolicy/Gate di tiap route tulis; cek kepemilikan resourcePolicies
CSRF@csrf di semua form; VerifyCsrfToken aktifCSRF Protection
XSS{{ }} sebagai default; audit tiap {!! !!}Cross-Site Scripting
SQL InjectionQuery builder/Eloquent; binding ? untuk query mentahSQL Injection Prevention
Mass assignment$fillable eksplisit; hindari $guarded = []Mass Assignment Protection
Upload fileValidasi mime + ukuran; simpan di luar root publikSecure File Uploads
Secret.env di luar Git; kredensial per-environmentSecret Management
KonfigurasiAPP_DEBUG=false di produksi; APP_ENV=productionSecure Configuration
Rate limitingThrottle di login dan endpoint beratRate Limiting
Dependensicomposer audit berkala; upgrade sebelum masa support habisSecurity 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 OWASPJawaban LaravelCourse
A01 Broken Access ControlGates, Policies, middleware auth, canAuthorization
A02 Cryptographic Failuresbcrypt/argon2, Crypt (AES-256), HTTPSPassword Security
A03 InjectionEloquent bindings, escaping BladeSQL Injection Prevention
A04 Insecure DesignValidasi ketat, FormRequest, action classForm Request Classes
A05 Security MisconfigurationAPP_DEBUG=false, config cache, header amanSecure Configuration
A06 Vulnerable Componentscomposer audit, kebijakan support LaravelSecurity Auditing
A07 Identification & Auth FailuresRate limiting, session regenerate, verifikasi emailAuthentication Security
A08 Software & Data IntegritySigned URL, validasi upload, composer.lock terkunciSecure File Uploads
A09 Logging FailuresChannel log terstruktur, audit trailLogging Configuration
A10 SSRFValidasi URL di HTTP client, allowlist hostMengakses 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:

bash
composer audit --no-dev

Output yang Dihasilkan:

text
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 .