Express.js ile Rate Limiting Uygulaması
Express.js ile Rate Limiting Uygulaması
Web uygulamalarında performansı ve güvenliği artırmak için sıkça kullanılan yöntemlerden biri de rate limiting (hız sınırlama) uygulamasıdır. Özellikle API servisleri ile çalışırken, saldırganların veya kötü niyetli kullanıcıların belirli bir süre içinde aşırı istek göndermesini engellemek için bu yöntemi uygulamak oldukça önemlidir. Bu makalede, Express.js kullanarak rate limiting uygulamasının nasıl yapılacağını inceleyeceğiz.
Rate Limiting Nedir?
Rate limiting, bir kullanıcının veya IP adresinin belirli bir süre içinde yapabileceği istek sayısını kısıtlamayı ifade eder. Örneğin, bir kullanıcıya saniyede 5 istek veya dakikada 100 istek gibi limitler koyabilirsiniz. Bu yöntem, DDoS (Distributed Denial of Service) gibi saldırılara karşı koruma sağlar ve sunucu yükünü azaltır.
Express.js ile Rate Limiting Uygulaması
Express.js üzerinde rate limiting uygulamak için birkaç farklı kütüphane bulunmaktadır. Bu örnekte, en popüler ve kullanışlı kütüphanelerden biri olan express-rate-limit
kütüphanesini kullanacağız. Öncelikle, kütüphaneyi projemize dahil edelim.
npm install express-rate-limit
Rate Limiting Kütüphanesinin Kurulumu
Kütüphaneyi kurduktan sonra temel bir Express.js uygulaması oluşturalım ve rate limiting'i nasıl entegre edeceğimizi görelim:
const express = require('express');
const rateLimit = require('express-rate-limit');
const app = express();
// Rate limiting yapılandırması
const limiter = rateLimit({
windowMs: 1 * 60 * 1000, // 1 dakika
max: 5, // her IP için maksimum 5 isteğe izin ver
message: 'Çok fazla istek gönderiyorsunuz. Lütfen bekleyin!'
});
// Tüm route'lar için rate limiting uygulaması
app.use(limiter);
app.get('/', (req, res) => {
res.send('Rate Limiting Uygulaması');
});
app.listen(3000, () => {
console.log('Sunucu 3000 portunda çalışıyor');
});
Uygulamanın Testi
Yukarıdaki kodu çalıştırdıktan sonra, tarayıcı veya Postman gibi bir araç ile http://localhost:3000/
adresine gidip istek göndermeye başlayabilirsiniz. Bir dakika içinde 5 isteği geçtiğinizde, ayarladığımız mesajı göreceksiniz. Bu sayede hem kullanıcılarınızı korumuş olursunuz hem de sunucunuzun sağlıklı bir şekilde çalışmasını sağlarsınız.
Sonuç
Express.js içinde rate limiting uygulamak, performansı artırmak ve kötüye kullanımı engellemek için etkili bir yöntemdir. express-rate-limit
kütüphanesi ile bu işlemi kolayca gerçekleştirebilir ve projenizi daha güvenli hale getirebilirsiniz. Unutmayın ki, kullanıcı deneyimini de göz önünde bulundurmalısınız; bu nedenle rate limiting ayarlarını dikkatlice yapmalısınız.
Yorum Gönder