Notice: The primary dependency for this library hasn't been updated in 5 years. Before using this library, consider other options such as express-validator.
express-sanitizer
An express middleware for Caja-HTML-Sanitizer, which wraps Google Caja sanitizer.
A useful complement to the express-validator -- to fill a gap now that XSS sanitization support has been removed from that module's parent node-validator.
Installation
yarn add express-sanitizer
or
npm install --save express-sanitizer
Usage
Import the module
const expressSanitizer = require('express-sanitizer');
Mount the middleware below the express.json()
(or, prior to express v4.16, bodyParser()
) instantiation and above mounting of your routes
app.use(express.json());
app.use(expressSanitizer());
app.post('/', function(req, res, next) {
const sanitizedString = req.sanitize(req.body.propertyToSanitize);
res.send({ sanitized: sanitizedString });
});
Output
The string
'<script>hello</script> world'
will be sanitized to ' world'.
Limitations
This is a basic implementation of Caja-HTML-Sanitizer with the specific purpose of mitigating against persistent XSS risks (note the borderline abandonware comments in that repo!).
Caveats
This module trusts the dependencies to provide basic persistent XSS risk mitigation. A user of this package should review all packages and make their own decision on security and fitness for purpose.
Changelog
v1.0.6
- Removed unused dependency
v1.0.5
- Unit tests (better late than never)
v1.0.4
- Merged PR #3 from Brian M. Jemilo II
v1.0.3
- Updated README to base example on an express-generator scaffolded application
v1.0.2
- Updated sanitizer dependency to 0.1.3
- Merged PR #4 from @ScottRamsden
v1.0.1
- Updated sanitizer dependency to 0.1.2
v1.0.0
v0.1.1
- Merged PR removing unused dependency
v0.1.0
Contributors
License
Copyright (c) 2021 Mark Andrews 20metresbelow@gmail.com, MIT License