【发布时间】:2021-09-16 20:47:33
【问题描述】:
我正在尝试修复 Checkmarx 扫描工具报告的问题,我尝试在以下路由模块中清理 err 和 req。 但是,它仍然抱怨同样的错误。
index.js
const express = require('express')
const router = express.Router()
const fs = require('fs')
const config = require('config')
var _require = require('jsdom'),
JSDOM = _require.JSDOM;
var window = new JSDOM('').window;
var DOMPurify = createDOMPurify(window);
function sanitizeError(value){
return DOMPurify.sanitize(value);
}
function sanitizeObject(obj) {
var sanitizedObject = {};
Object.keys(obj).forEach(function (key) {
sanitizedObject[key] = sanitizeValue(obj[key]);
});
return sanitizedObject;
};
//error handler route
router.use('/error',(err, req, res, next) => {
//sanitizeObject(req)
req.logger.error('uncaught error page', sanitizeError(err))
res.redirect('/toanotehrerror page')
})
module.exports = router
Checkmarx 错误:
Reflected_XSS 错误。它指的是上面模块中的req.logger.error行
应用程序的 router.use 在 \routes\index.js 的第 x 行将不受信任的数据嵌入到生成的输出中并出现错误。这些不受信任的数据直接嵌入到输出中,没有经过适当的清理或编码,使攻击者能够将恶意代码注入到输出中。
攻击者可以通过简单地在用户输入错误中提供修改后的数据来更改返回的网页,这些数据由 \routes\index.js 的第 x 行的 router.use 方法读取。然后,此输入通过代码直接流向输出网页,无需进行清理。
这可以启用反射跨站点脚本 (XSS) 攻击。
【问题讨论】:
标签: javascript node.js checkmarx