Mengapa Keamanan API Adalah Prioritas Utama?
Di 2026, laporan keamanan siber terbaru menunjukkan bahwa API adalah target serangan nomor satu โ melampaui serangan langsung ke antarmuka web. Satu celah bisa berdampak pada kebocoran data ribuan pengguna.
1. Autentikasi JWT yang Benar
// Hanya simpan identifier minimal di JWT payload
$payload = [
"sub" => 123, // User ID
"role" => "editor",
"iat" => time(),
"exp" => time() + 3600, // Expire 1 jam
];
// Gunakan algoritma RS256 (asymmetric) untuk produksi
2. Validasi Input Ketat
class StoreProductRequest extends FormRequest
{
public function rules(): array
{
return [
"name" => ["required", "string", "max:255"],
"price" => ["required", "numeric", "min:0"],
"category_id" => ["required", "integer", "exists:categories,id"],
];
}
}
3. Rate Limiting
RateLimiter::for("login", function (Request $request) {
return [
Limit::perMinute(5)->by($request->ip()),
Limit::perDay(20)->by($request->input("email")),
];
});
4. CORS yang Aman
// Whitelist domain yang diizinkan โ jangan gunakan wildcard!
"allowed_origins" => [
"https://app.reyzone.com",
"https://admin.reyzone.com",
],
5. Security Headers Wajib
return $response
->header("X-Content-Type-Options", "nosniff")
->header("X-Frame-Options", "DENY")
->header("Strict-Transport-Security", "max-age=31536000")
->header("Content-Security-Policy", "default-src 'self'")
->withoutHeader("X-Powered-By");
Checklist Keamanan API
- Gunakan HTTPS untuk semua endpoint
- Validasi SEMUA input dari client
- Implementasikan rate limiting
- Batasi CORS ke domain yang dikenal
- Expire token JWT dalam waktu pendek
- Tambahkan security headers
- Log aktivitas mencurigakan
Kesimpulan
Keamanan API bukan fitur opsional โ ini fondasi kepercayaan. Mulai dari hal-hal dasar di atas, dan secara berkala lakukan penetration testing atau security review untuk memastikan API kamu tetap aman.