如何解决node.js中querystring的反射XSS漏洞



我试图解决它使用inHTMLData()的xss过滤器库像这个答案。但它不起作用,因为req.query是一个对象

function data(req, res) {
fetchData(req.params.uniqueId, req.params.name, req.query) // query has multiple data
.then((result) => {res.json(result)})
.catch((error) => res.json(error));
};

使用xss-filters npm库

  1. 第一个字符串化查询字符串
  2. 使用xss-filters的inHTMLData
  3. 使用JSON.parse

const xssFilters = require('xss-filters');

函数data(req, res) {

const uniqueId = xssFilters.inHTMLData(req.params.uniqueId);

const name = xssFilters.inHTMLData(req.params.name);

const query = xssFilters.inHTMLData(JSON.stringify(req.query));
fetchData(uniqueId, name, JSON.parse(query)) // query has multiple data

.then((result) => {res.json(result)})
.catch((error) => res.json(error));
};

最新更新