API adalah pintu masuk ke sistem Anda. Keamanan yang buruk bisa berakibat sangat fatal.
1. Autentikasi yang Kuat
Gunakan token-based auth (JWT atau Opaque Token):
// Laravel Sanctum untuk SPA dan Mobile
Route::middleware('auth:sanctum')->group(function () {
Route::apiResource('posts', PostController::class);
});
2. Rate Limiting
Cegah brute force dan abuse:
Route::middleware(['throttle:api'])->group(function () {
Route::post('/login', [AuthController::class, 'login']);
});
// config/throttle 'api' => Limit::perMinute(60)->by(request()->user()?->id ?: request()->ip())
3. Input Validation
Jangan pernah percaya input dari client:
$validated = $request->validate([
'email' => ['required', 'email:rfc,dns', 'max:254'],
'amount' => ['required', 'integer', 'min:1', 'max:10000000'],
]);
4. CORS yang Ketat
// config/cors.php
'allowed_origins' => ['https://yourapp.com'],
'allowed_methods' => ['GET', 'POST', 'PUT', 'DELETE'],
5. Versioning API
/api/v1/users ← hapus ketika deprecated, bukan ubah
/api/v2/users ← versi baru dengan breaking changes
6. Response yang Aman
Jangan expose stack trace di production
Filter field sensitif dari response
Gunakan HTTP status code yang tepat