Skip to content

Commit 76a0597

Browse files
Potential fix for code scanning alert no. 353: Missing rate limiting (#32928)
Signed-off-by: EugeniyKiyashko <EugeniyKiyashko@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
1 parent 1388e8b commit 76a0597

3 files changed

Lines changed: 18 additions & 3 deletions

File tree

apps/demos/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,8 @@
8686
"vuex": "4.0.0-beta.4",
8787
"whatwg-fetch": "2.0.4",
8888
"yargs": "17.7.2",
89-
"zone.js": "0.15.1"
89+
"zone.js": "0.15.1",
90+
"express-rate-limit": "^8.3.1"
9091
},
9192
"devDependencies": {
9293
"@angular/platform-server": "21.1.6",

apps/demos/utils/server/csp-server.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ const express = require('express');
55
const cookieParser = require('cookie-parser');
66
const { join, resolve } = require('path');
77
const { readFileSync, readdirSync } = require('fs');
8+
const RateLimit = require('express-rate-limit');
89

910
const root = join(__dirname, '..', '..', '..', '..');
1011
const indexFileName = 'index.html';
@@ -379,12 +380,17 @@ const app = express();
379380
app.use(cookieParser());
380381
app.use(cspMiddleware);
381382

383+
const demoIndexLimiter = RateLimit({
384+
windowMs: 15 * 60 * 1000,
385+
max: 100,
386+
});
387+
382388
app.post('/csp-report', cspReportHandler);
383389
app.get('/csp-violations', cspViolationsHandler);
384390
app.delete('/csp-violations', cspViolationsClearHandler);
385391

386-
app.get('/apps/demos/Demos/:widget/:name/:approach', demoIndexHandler);
387-
app.get(`/apps/demos/Demos/:widget/:name/:approach/${indexFileName}`, demoIndexHandler);
392+
app.get('/apps/demos/Demos/:widget/:name/:approach', demoIndexLimiter, demoIndexHandler);
393+
app.get(`/apps/demos/Demos/:widget/:name/:approach/${indexFileName}`, demoIndexLimiter, demoIndexHandler);
388394

389395
app.use(express.static(root, { index: [indexFileName] }));
390396

pnpm-lock.yaml

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)