express-sanitizer

    1.0.6 • Public • Published

    npm Build Status npm dependencies Known Vulnerabilities

    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());
    
    // Mount express-sanitizer middleware here
    app.use(expressSanitizer());
    
    app.post('/', function(req, res, next) {
      // replace an HTTP posted body property with the sanitized string
      const sanitizedString = req.sanitize(req.body.propertyToSanitize);
      // send the response -- res.body.sanitized = " world"
      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

    • Update to v1

    v0.1.1

    • Merged PR removing unused dependency

    v0.1.0

    • Initial release

    Contributors

    License

    Copyright (c) 2021 Mark Andrews 20metresbelow@gmail.com, MIT License

    Install

    npm i express-sanitizer

    DownloadsWeekly Downloads

    7,048

    Version

    1.0.6

    License

    MIT

    Unpacked Size

    7.51 kB

    Total Files

    6

    Last publish

    Collaborators

    • markau