mirror of
https://github.com/MasterAcnolo/Freedom-Loader.git
synced 2026-11-13 15:09:20 +01:00
feat: implement rate limits for downloads and info requests
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
const RateLimit = require("express-rate-limit");
|
||||
|
||||
|
||||
/**
|
||||
* Rate limiter middleware used to protect public endpoints
|
||||
* against abusive or excessive requests.
|
||||
@@ -15,10 +14,29 @@ const RateLimit = require("express-rate-limit");
|
||||
const rateLimit = RateLimit({
|
||||
windowMs: 15 * 60 * 1000, // 15 minutes
|
||||
max: 5,
|
||||
message: "Too many requests, please try again later.",
|
||||
statusCode: 429,
|
||||
message: {error: {code: "RATE_LIMITED", message: "Too many requests, please try again later."}},
|
||||
standardHeaders: true,
|
||||
legacyHeaders: false,
|
||||
});
|
||||
|
||||
const downloadRateLimit = RateLimit({
|
||||
windowMs: 15 * 60 * 1000, // 15 minutes
|
||||
max: 100,
|
||||
message: {error: {code: "RATE_LIMITED", message: "Too many download requests, please try again later."}},
|
||||
standardHeaders: true,
|
||||
legacyHeaders: false,
|
||||
});
|
||||
|
||||
const infoRateLimit = RateLimit({
|
||||
windowMs: 60 * 1000, // 1 minute
|
||||
max: 60,
|
||||
message: {error: {code: "RATE_LIMITED", message: "Too many info requests, please try again later."}},
|
||||
standardHeaders: true,
|
||||
legacyHeaders: false,
|
||||
});
|
||||
|
||||
module.exports = {
|
||||
rateLimit
|
||||
}
|
||||
rateLimit,
|
||||
downloadRateLimit,
|
||||
infoRateLimit,
|
||||
};
|
||||
Reference in New Issue
Block a user