0

我相信 socket.io 有一个 XSS 漏洞,我想知道如何解决这个问题。

请参阅我关于带有XSS 漏洞的socket.io 的 pubsub redis 的帖子。

当你这样做时,来自 redis-cli:

publish pubsub "<script>alert('Hello world!');</script>"

您将看到一个错误的警告Hello world!对话框...

为了解决这个问题,我从 visionmedia 的玉库中复制了以下片段,想知道这是否足够?

/**
 * Escape the given string of `html`.
 *
 * @param {String} html
 * @return {String}
 * @api private
 */

function sanitize(html){
    return String(html)
        .replace(/&(?!\w+;)/g, '&amp;')
        .replace(/</g, '&lt;')
        .replace(/>/g, '&gt;')
        .replace(/"/g, '&quot;');
}

这足够还是我错过了什么?甚至可以在 socket.js 中解决问题?

4

1 回答 1

5

有一个节点验证器库,它为 XSS 提供了清理方法。

于 2011-03-17T22:42:06.247 回答