Skip to content

Commit 576a3b6

Browse files
Potential fix for code scanning alert no. 3: Missing rate limiting
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
1 parent f97ce71 commit 576a3b6

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

templates/node/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
"dev": "node src/index.js"
77
},
88
"dependencies": {
9-
"express": "^4.19.2"
9+
"express": "^4.19.2",
10+
"express-rate-limit": "^8.2.1"
1011
}
1112
}

templates/node/src/index.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import express from 'express';
22
import fs from 'fs';
33
import path from 'path';
4+
import rateLimit from 'express-rate-limit';
45

56
// Initialize logger
67
let logger;
@@ -25,6 +26,13 @@ function log(level, message, data = {}) {
2526
const app = express();
2627
const port = process.env.PORT || 3001;
2728

29+
// Set up rate limiter for the /logs endpoint (max 5 requests per minute)
30+
const logsLimiter = rateLimit({
31+
windowMs: 60 * 1000, // 1 minute
32+
max: 5,
33+
message: { error: 'Too many requests, please try again later.' }
34+
});
35+
2836
// Middleware for request logging
2937
app.use((req, res, next) => {
3038
log('info', `${req.method} ${req.path}`, {
@@ -41,7 +49,7 @@ app.get('/health', (_req, res) => {
4149
res.json({ status: 'ok', service: 'node' });
4250
});
4351

44-
app.get('/logs', (req, res) => {
52+
app.get('/logs', logsLimiter, (req, res) => {
4553
try {
4654
const { tail = 50, level, since } = req.query;
4755

0 commit comments

Comments
 (0)