const rateLimit = require('express-rate-limit'); // Общий лимит для API const generalLimiter = rateLimit({ windowMs: 15 * 1000, // 15 секунд max: 100, // 100 запросов message: 'Слишком много запросов, попробуйте позже', standardHeaders: true, legacyHeaders: false, }); // Строгий лимит для создания постов const postCreationLimiter = rateLimit({ windowMs: 15 * 1000, // 15 секунд max: 10, // 10 постов message: 'Вы создаёте слишком много постов, подождите немного', skipSuccessfulRequests: true, }); // Лимит для авторизации const authLimiter = rateLimit({ windowMs: 15 * 1000, // 15 секунд max: 5, // 5 попыток message: 'Слишком много попыток авторизации', }); // Лимит для поиска const searchLimiter = rateLimit({ windowMs: 15 * 1000, // 15 секунд max: 30, // 30 запросов message: 'Слишком много поисковых запросов', }); // Лимит для лайков/комментариев (защита от спама) const interactionLimiter = rateLimit({ windowMs: 15 * 1000, // 15 секунд max: 20, // 20 действий message: 'Вы слишком активны, немного подождите', }); // Мягкий лимит для прокси изображений (больше запросов, так как это медиа) const proxyLimiter = rateLimit({ windowMs: 15 * 1000, // 15 секунд max: 200, // 200 запросов (больше для загрузки множества изображений) message: 'Слишком много запросов изображений', skipSuccessfulRequests: true, // Не считать успешные запросы }); module.exports = { generalLimiter, postCreationLimiter, authLimiter, searchLimiter, interactionLimiter, proxyLimiter };