Kesilapan Security yang Selalu Jumpa dalam Laravel (dan Cara Improve)
Published:
Updated:
1. Percaya “Laravel dah secure by default”
Silap paling mahal.
Ramai dev rasa:
“Takpe, Laravel ada CSRF, ada auth, dah cukup.”
Realitinya:
- Route admin tak rate-limit
- Login boleh brute force
- API boleh ditembak tanpa had
Apa saya buat sebenarnya
- Aktifkan
RateLimiteruntuk Login, Reset Password, dan API sensitif - Asingkan route public vs admin dengan middleware jelas
- Jangan expose error detail walaupun dalam staging
Bonus Cloudflare
-
Setup Security Rules untuk block:
-
Request pelik (user-agent bot)
-
IP yang hammer endpoint login
-
-
Result: serangan mati sebelum sampai Laravel
2. Endpoint “tak ada UI” dianggap selamat
Ini classic.
“Endpoint ni tak ada form atau view pun, orang takkan jumpa.”
Super Wrong.
Bot tak perlukan UI.
Bot scan URL, bukan click button.
Contoh biasa bot scan
/api/export/admin/sync/webhook/test/wp-content/
Apa saya buat
-
Semua endpoint sensitif:
-
Auth wajib
-
Token atau signed URL
-
-
Disable endpoint lama/testing yang dah tak guna
Cloudflare move
-
Security Rules:
-
Block access ke
/admin/*dari negara tertentu -
Allow hanya IP whitelist untuk webhook
-
-
Laravel jadi layer kedua, bukan first line defense
3. Log, env & error terlalu “jujur”
Saya selalu jumpa:
.envbocor masa deploy- Log simpan token & payload penuh
- Error page tunjuk stack trace production (tak disable debug mode)
Apa saya buat
- Pastikan
APP_DEBUG=false(wajib) - Sanitize log (jangan log token, header sensitif)
- Rotate & protect log file (log lama buang. yang relevan je simpan)
Cloudflare angle
-
Block request yang cuba access:
.env.git.log.php
-
Ini benda basic tapi masih ramai miss
Kenapa saya guna Cloudflare + Laravel (dua-dua)
Laravel jaga aplikasi
Cloudflare jaga perimeter
Kalau attacker dah sampai controller → itu dah lambat.
Security Rules Cloudflare:
-
Murah
-
Cepat
-
Kurangkan load server
-
Kurangkan panic tengah malam
Closing
Security bukan tentang “perfect”.
Ia tentang buat attacker give up awal.
Kalau app Laravel kau dah live:
- Audit route
- Lock down endpoint
- Bagi Cloudflare tapis dulu
Kalau kau nak setup ni dengan betul (tanpa overkill),
aku buat benda ni almost every week.
👉 DM atau reach out.