diff --git a/backend/middlewares/rate-limit.js b/backend/middlewares/rate-limit.js index c1cceaecc..9559695a1 100644 --- a/backend/middlewares/rate-limit.js +++ b/backend/middlewares/rate-limit.js @@ -1,6 +1,10 @@ const rateLimit = require("express-rate-limit"); -const getAddress = (req) => req.headers["cf-connecting-ip"] || req.headers["x-forwarded-for"] || req.ip || "255.255.255.255"; +const getAddress = (req) => + req.headers["cf-connecting-ip"] || + req.headers["x-forwarded-for"] || + req.ip || + "255.255.255.255"; const message = "Too many requests, please try again later"; const multiplier = process.env.MODE === "dev" ? 100 : 1; @@ -9,14 +13,14 @@ exports.configUpdate = rateLimit({ windowMs: 60 * 60 * 1000, // 60 min max: 500 * multiplier, message, - keyGenerator: getAddress + keyGenerator: getAddress, }); exports.configGet = rateLimit({ windowMs: 60 * 60 * 1000, // 60 min max: 120 * multiplier, message, - keyGenerator: getAddress + keyGenerator: getAddress, }); // Leaderboards Routing @@ -24,7 +28,7 @@ exports.leaderboardsGet = rateLimit({ windowMs: 60 * 60 * 1000, // 60 min max: 60 * multiplier, message, - keyGenerator: getAddress + keyGenerator: getAddress, }); // New Quotes Routing @@ -32,21 +36,21 @@ exports.newQuotesGet = rateLimit({ windowMs: 60 * 60 * 1000, max: 500 * multiplier, message, - keyGenerator: getAddress + keyGenerator: getAddress, }); exports.newQuotesAdd = rateLimit({ windowMs: 60 * 60 * 1000, // 60 min max: 60 * multiplier, message, - keyGenerator: getAddress + keyGenerator: getAddress, }); exports.newQuotesAction = rateLimit({ windowMs: 60 * 60 * 1000, max: 500 * multiplier, message, - keyGenerator: getAddress + keyGenerator: getAddress, }); // Quote Ratings Routing @@ -54,14 +58,14 @@ exports.quoteRatingsGet = rateLimit({ windowMs: 60 * 60 * 1000, max: 500 * multiplier, message, - keyGenerator: getAddress + keyGenerator: getAddress, }); exports.quoteRatingsSubmit = rateLimit({ windowMs: 60 * 60 * 1000, max: 500 * multiplier, message, - keyGenerator: getAddress + keyGenerator: getAddress, }); // Presets Routing @@ -69,28 +73,28 @@ exports.presetsGet = rateLimit({ windowMs: 60 * 60 * 1000, // 60 min max: 60 * multiplier, message, - keyGenerator: getAddress + keyGenerator: getAddress, }); exports.presetsAdd = rateLimit({ windowMs: 60 * 60 * 1000, // 60 min max: 60 * multiplier, message, - keyGenerator: getAddress + keyGenerator: getAddress, }); exports.presetsRemove = rateLimit({ windowMs: 60 * 60 * 1000, // 60 min max: 60 * multiplier, message, - keyGenerator: getAddress + keyGenerator: getAddress, }); exports.presetsEdit = rateLimit({ windowMs: 60 * 60 * 1000, // 60 min max: 60 * multiplier, message, - keyGenerator: getAddress + keyGenerator: getAddress, }); // PSA (Public Service Announcement) Routing @@ -98,7 +102,7 @@ exports.psaGet = rateLimit({ windowMs: 60 * 1000, max: 60 * multiplier, message, - keyGenerator: getAddress + keyGenerator: getAddress, }); // Results Routing @@ -106,146 +110,146 @@ exports.resultsGet = rateLimit({ windowMs: 60 * 60 * 1000, // 60 min max: 60 * multiplier, message, - keyGenerator: getAddress + keyGenerator: getAddress, }); exports.resultsAdd = rateLimit({ windowMs: 60 * 60 * 1000, max: 500 * multiplier, message, - keyGenerator: getAddress + keyGenerator: getAddress, }); exports.resultsTagsUpdate = rateLimit({ windowMs: 60 * 60 * 1000, max: 30 * multiplier, message, - keyGenerator: getAddress + keyGenerator: getAddress, }); exports.resultsDeleteAll = rateLimit({ windowMs: 60 * 60 * 1000, // 60 min max: 10 * multiplier, message, - keyGenerator: getAddress + keyGenerator: getAddress, }); exports.resultsLeaderboardGet = rateLimit({ windowMs: 60 * 60 * 1000, // 60 min max: 60 * multiplier, message, - keyGenerator: getAddress + keyGenerator: getAddress, }); exports.resultsLeaderboardQualificationGet = rateLimit({ windowMs: 60 * 60 * 1000, // 60 min max: 60 * multiplier, message, - keyGenerator: getAddress + keyGenerator: getAddress, }); // Users Routing exports.userGet = rateLimit({ windowMs: 60 * 60 * 1000, // 60 min - max: 1 * multiplier, + max: 60 * multiplier, message, - keyGenerator: getAddress + keyGenerator: getAddress, }); exports.userSignup = rateLimit({ windowMs: 24 * 60 * 60 * 1000, // 1 day max: 3 * multiplier, message, - keyGenerator: getAddress + keyGenerator: getAddress, }); exports.userDelete = rateLimit({ windowMs: 24 * 60 * 60 * 1000, // 1 day max: 3 * multiplier, message, - keyGenerator: getAddress + keyGenerator: getAddress, }); exports.userCheckName = rateLimit({ windowMs: 60 * 1000, max: 60 * multiplier, message, - keyGenerator: getAddress + keyGenerator: getAddress, }); exports.userUpdateName = rateLimit({ windowMs: 24 * 60 * 60 * 1000, // 1 day max: 3 * multiplier, message, - keyGenerator: getAddress + keyGenerator: getAddress, }); exports.userUpdateLBMemory = rateLimit({ windowMs: 60 * 1000, max: 60 * multiplier, message, - keyGenerator: getAddress + keyGenerator: getAddress, }); exports.userUpdateEmail = rateLimit({ windowMs: 60 * 60 * 1000, // 60 min max: 60 * multiplier, message, - keyGenerator: getAddress + keyGenerator: getAddress, }); exports.userClearPB = rateLimit({ windowMs: 60 * 60 * 1000, // 60 min max: 60 * multiplier, message, - keyGenerator: getAddress + keyGenerator: getAddress, }); exports.userTagsGet = rateLimit({ windowMs: 60 * 60 * 1000, // 60 min max: 60 * multiplier, message, - keyGenerator: getAddress + keyGenerator: getAddress, }); exports.userTagsRemove = rateLimit({ windowMs: 60 * 60 * 1000, // 60 min max: 30 * multiplier, message, - keyGenerator: getAddress + keyGenerator: getAddress, }); exports.userTagsClearPB = rateLimit({ windowMs: 60 * 60 * 1000, // 60 min max: 60 * multiplier, message, - keyGenerator: getAddress + keyGenerator: getAddress, }); exports.userTagsEdit = rateLimit({ windowMs: 60 * 60 * 1000, // 60 min max: 30 * multiplier, message, - keyGenerator: getAddress + keyGenerator: getAddress, }); exports.userTagsAdd = rateLimit({ windowMs: 60 * 60 * 1000, // 60 min max: 30 * multiplier, message, - keyGenerator: getAddress + keyGenerator: getAddress, }); exports.userDiscordLink = exports.usersTagsEdit = rateLimit({ windowMs: 60 * 60 * 1000, // 60 min max: 15 * multiplier, - message, - keyGenerator: getAddress + message, + keyGenerator: getAddress, }); exports.userDiscordUnlink = exports.usersTagsEdit = rateLimit({ windowMs: 60 * 60 * 1000, // 60 min max: 15 * multiplier, message, - keyGenerator: getAddress -}); \ No newline at end of file + keyGenerator: getAddress, +});