【发布时间】:2021-04-26 10:13:32
【问题描述】:
我在以下代码块中受到反射跨站点脚本 (XSS) 攻击,
const getData = async function (req, res) {
const { query } = req.body;
const requestBody = formRequestBody(query);
const { authorization } = req.headers;
try {
const { data } = await axios(url, {
body: requestBody,
headers: {
Authorization: authorization
}
});
if (data) {
res.send(data);
}
} catch (error) {
console.log(error);
}
};
我尝试添加一个卫生功能并清理查询字符串,如下所示,
const sanitizeString = (string) => {
const escapeCharsMap = {
'&': '&',
'<': '<',
'>': '>',
'"': '"',
"'": ''',
'/': '/'
};
const reg = /[&<>"'/]/gi;
return string.replace(reg, (match) => escapeCharsMap[match]);
};
我将formRequestBody(query) 更改为formRequestBody(sanitizeString(query)),仍然遇到问题。
我该如何解决?
【问题讨论】:
标签: javascript node.js security xss