Skip to content

Commit 564a5b1

Browse files
committed
security: require explicit LOADTEST_BYPASS_KEY environment variable for rate limit bypass
1 parent dc04759 commit 564a5b1

2 files changed

Lines changed: 6 additions & 3 deletions

File tree

apps/public-api/src/middlewares/api_usage.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ const rateLimiterMiddleware = rateLimit({
1515
});
1616

1717
const limiter = (req, res, next) => {
18-
const bypassKey = process.env.LOADTEST_BYPASS_KEY || 'urbackend_loadtest_secret';
19-
if (req.headers['x-bypass-rate-limit'] === bypassKey || process.env.BYPASS_RATE_LIMIT === 'true') {
18+
const bypassKey = process.env.LOADTEST_BYPASS_KEY;
19+
if (bypassKey && req.headers['x-bypass-rate-limit'] === bypassKey) {
2020
return next();
2121
}
2222
return rateLimiterMiddleware(req, res, next);

scripts/loadtest-public-api.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ const password = args.password || 'password123';
2626
const skipAuth = args.skipAuth === 'true' || args.skipAuth === true;
2727
const skipData = args.skipData === 'true' || args.skipData === true;
2828

29+
const bypassKey = args.bypassKey || process.env.LOADTEST_BYPASS_KEY;
30+
2931
const keyType = apiKey.startsWith('sk_live_') ? 'Secret Key (sk_live_)' : apiKey.startsWith('pk_live_') ? 'Publishable Key (pk_live_)' : 'Custom Key';
3032

3133
console.log('====================================================');
@@ -36,6 +38,7 @@ console.log(`⚡ Connections : ${connections} VUs (Virtual Users)`);
3638
console.log(`⏱️ Duration : ${duration} seconds`);
3739
console.log(`🔑 Key Type : ${keyType}`);
3840
console.log(`📁 Collection : ${collection}`);
41+
console.log(`🛡️ Rate Bypass : ${bypassKey ? 'Enabled' : 'Disabled (Standard Rate Limits Active)'}`);
3942
console.log('====================================================\n');
4043

4144
async function runBenchmark(name, opts) {
@@ -48,7 +51,7 @@ async function runBenchmark(name, opts) {
4851
connections,
4952
duration,
5053
headers: {
51-
'x-bypass-rate-limit': process.env.LOADTEST_BYPASS_KEY || 'urbackend_loadtest_secret',
54+
...(bypassKey ? { 'x-bypass-rate-limit': bypassKey } : {}),
5255
...(opts.headers || {}),
5356
},
5457
body: opts.body ? JSON.stringify(opts.body) : undefined,

0 commit comments

Comments
 (0)