Masalah
CORS pada API saat ini mengizinkan semua asal/origin (allowed_origins = *). Setting ini sangat berbahaya jika app berbasis token/cookie (credentials) karena memungkinkan akses API oleh situs lain dari browser mana pun, termasuk malicious websites.
Dampak
- Serangan API abuse cross-origin, data leak/disclosure, CSRF scenario lebih besar
- Bahaya session/user authentication bisa di-exploit via malicious javascript dari domain luar
Langkah Penyelesaian
- Ubah
config/cors.php agar allowed_origins hanya domain tepercaya saja (contoh: prod domain, localhost untuk dev, dll)
- Hindari penggunaan wildcard jika
supports_credentials = true
- Limitasi
allowed_headers
- Tes preflight (
OPTIONS) responsibly
Contoh Konfigurasi
'allowed_origins' => ['https://opensid.my.id', 'https://dashboard.example.com'],
'supports_credentials' => true,
Setelah Perbaikan
- Tes API dari domain lain, pastikan request cross-origin gagal kecuali dari whitelisted origin.
Masalah
CORS pada API saat ini mengizinkan semua asal/
origin(allowed_origins=*). Setting ini sangat berbahaya jika app berbasis token/cookie (credentials) karena memungkinkan akses API oleh situs lain dari browser mana pun, termasuk malicious websites.Dampak
Langkah Penyelesaian
config/cors.phpagarallowed_originshanya domain tepercaya saja (contoh: prod domain, localhost untuk dev, dll)supports_credentials=trueallowed_headersOPTIONS) responsiblyContoh Konfigurasi
Setelah Perbaikan