In-Memory Sliding Window Rate Limiter

20:00

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 }.
solution.js
Loading...
Local Test Console