Skip to content

feat(security): add input sanitisation middleware (mongoSanitize and xss-clean)#83

Open
tmrathod2003-alt wants to merge 1 commit intoHardhat-Enterprises:devfrom
tmrathod2003-alt:input-sanitisation-middleware/titiksha
Open

feat(security): add input sanitisation middleware (mongoSanitize and xss-clean)#83
tmrathod2003-alt wants to merge 1 commit intoHardhat-Enterprises:devfrom
tmrathod2003-alt:input-sanitisation-middleware/titiksha

Conversation

@tmrathod2003-alt
Copy link
Copy Markdown

@tmrathod2003-alt tmrathod2003-alt commented Apr 11, 2026

Implements input sanitisation middleware to protect the backend against NoSQL injection and XSS attacks. Currently the app accepts raw user input without sanitisation, leaving it vulnerable to malicious payloads. This adds a security layer that sanitises all incoming requests before they reach the route handlers.

Changes:
Installed express-mongo-sanitize to strip MongoDB operators from request inputs
Installed xss-clean to sanitise HTML tags and prevent XSS attacks
Updated src/index.js to apply mongoSanitize() and xss() middleware globally

Testing:
Sent NoSQL injection payload {"$gt": ""} to /api/reports — blocked by Zod validation (email must be string)
Sent XSS payload <script>alert('xss')</script> to /api/reports without middleware — script tag stored as-is (vulnerable)
Sent same XSS payload with middleware enabled — script tag converted to <script> (sanitised) ✅
Sent NoSQL injection payload {"$gt": ""} to /api/reports without middleware — $gt operator stored as-is (vulnerable)
Sent same NoSQL payload with middleware enabled — $gt operator stripped to {} (sanitised) ✅

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants