Implementasi Skip IP pada express-rate-limit
Untuk mengecualikan alamat IP tertentu dari pembatasan laju (rate limiting) pada aplikasi Node.js menggunakan paket express-rate-limit, Anda harus memanfaatkan opsi konfigurasi skip. Fungsi ini menerima objek req (request) dan mengembalikan nilai boolean (true untuk melewati limit, false untuk menerapkan limit).
Contoh Implementasi Kode
Berikut adalah cara mengimplementasikan fungsi skip untuk mem-bypass IP lokal atau IP internal tertentu:
const rateLimit = require('express-rate-limit');
const limiter = rateLimit({
windowMs: 15 * 60 * 1000, // 15 menit
max: 100, // limit per IP
skip: (req, res) => {
// Contoh: Skip jika IP adalah localhost atau IP internal tertentu
const allowedIps = ['127.0.0.1', '192.168.1.50'];
return allowedIps.includes(req.ip);
}
});
app.use(limiter);Tabel Parameter Konfigurasi Skip
| Parameter | Tipe Data | Deskripsi |
|---|---|---|
| skip | Function | Fungsi callback (req, res) yang mengembalikan boolean. |
| req.ip | String | Alamat IP pengirim yang terdeteksi oleh Express. |
| req.headers | Object | Dapat digunakan untuk bypass berdasarkan API Key atau Header. |
Strategi Bypass Berdasarkan Header
Dalam lingkungan produksi yang menggunakan Load Balancer atau Reverse Proxy (seperti Nginx atau Cloudflare), req.ip mungkin tidak akurat. Pastikan app.set('trust proxy', 1) telah diaktifkan. Anda juga dapat melakukan skip berdasarkan header khusus untuk kebutuhan internal:
skip: (req) => {
return req.headers['x-bypass-secret'] === 'rahasia-internal-anda';
}Troubleshooting Umum
- Trust Proxy: Jika
req.ipselalu bernilai::1atau IP proxy, pastikanapp.set('trust proxy', 1)sudah dipasang sebelum middleware rate limit. - Urutan Middleware: Pastikan middleware
express-rate-limitdiletakkan setelah middleware yang memproses header atau autentikasi jika Anda melakukan skip berdasarkan header. - IPv6 vs IPv4: Pastikan format IP yang dimasukkan ke dalam array
allowedIpssesuai dengan format yang diterima oleh server (misal:::ffff:127.0.0.1).
🔍 Orang Lain Juga Mencari Ini
Express-rate-limit Skip Function
Node.js Rate Limit Bypass
Express Trust Proxy Configuration
Express-rate-limit Whitelist Ip
Express Middleware Rate Limiting
Bypass Rate Limit By Header
Express-rate-limit Documentation
Node.js Security Best Practices
Express-rate-limit Custom Skip Logic
Rate Limiting In Production Node.js
Express-rate-limit Ipv6 Support
How To Use Express-rate-limit
Express-rate-limit Vs Express-slow-down
Api Rate Limiting Strategies
Express Request Ip Address