32 lines
806 B
JavaScript
32 lines
806 B
JavaScript
// Rate limiter для защиты от злоупотреблений
|
||
|
||
const rateLimit = require('express-rate-limit');
|
||
|
||
// Общий rate limiter
|
||
const generalLimiter = rateLimit({
|
||
windowMs: 15 * 60 * 1000, // 15 минут
|
||
max: 100, // максимум 100 запросов с одного IP за окно времени
|
||
message: {
|
||
success: false,
|
||
error: 'Too many requests from this IP, please try again later.',
|
||
},
|
||
standardHeaders: true,
|
||
legacyHeaders: false,
|
||
});
|
||
|
||
// Строгий rate limiter для API
|
||
const strictLimiter = rateLimit({
|
||
windowMs: 15 * 60 * 1000,
|
||
max: 20, // максимум 20 запросов
|
||
message: {
|
||
success: false,
|
||
error: 'Too many requests, please try again later.',
|
||
},
|
||
});
|
||
|
||
module.exports = {
|
||
generalLimiter,
|
||
strictLimiter,
|
||
};
|
||
|