1. Studi Kasus
Penyalahgunaan API dan serangan spam dapat membebani server aplikasi. Tugas Anda adalah membuat middleware Sliding Window Rate Limiter In-Memory untuk Express.js guna melindungi endpoint API sensitif.
Endpoint yang dilindungi:
POST /api/action
⏱️ Alokasi Waktu Live Coding (20 Menit):
- 5 Menit Pertama: Memahami sliding window time check (hapus timestamp usang $> 60s$).
- 15 Menit Koding: Implementasi map IP client, pembersihan sliding window, dan HTTP 429.
2. Aturan Bisnis
- Batas: Maksimal 5 request per IP per jendela waktu 60 detik.
- Jika request ke-6 masuk dalam 60 detik dari request pertama: kembalikan
HTTP 429 Too Many Requests dengan JSON { "error": "Rate limit exceeded. Try again later." }.
- Jika request masih dalam batas ($le 5$): kembalikan
HTTP 200 OK dengan { "message": "Action successful", "remaining": X }.