0

想采取措施保护自己免受 XSS 攻击。

现在,我有:

sanitizeQuery('searchQuery').escape().trim()

那是足够的保护吗?或者你会推荐添加类似 DOM Purify 的东西(在节点端运行)吗?

4

2 回答 2

0

简短的回答:没有

长答案:您的方法将帮助您完成大部分工作,但我引用:

如果您将不受信任的数据放在任何地方的标记中,或者像 onmouseover 这样的事件处理程序属性中,或者在 CSS 中,或者在 URL 中,则 HTML 实体编码不起作用。

你应该使用像DOMPurify这样的东西

XSS 预防备忘单

于 2018-06-11T15:37:45.647 回答
0

您可以dompurify 与 express-validator 一起使用。

const { param, validationResult } = require('express-validator')
const createDOMPurify = require('dompurify');
const { JSDOM } = require('jsdom');

 const xssSenitize = (value) => {
    const window = new JSDOM('').window;
    const DOMPurify = createDOMPurify(window);
    return DOMPurify.sanitize(value, { ALLOWED_TAGS: [] });
  }

 query(['id']).customSanitizer(xssSenitize)
于 2021-02-23T05:09:41.457 回答