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

看到我的帖子 pubsub redis with socket.io 具有A/XSS孔。

从Redis-Cli开始时:

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

您将看到一个警报对话框 Hello world! 那是 坏的...

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

/**
 * 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;');
}

这够了还是我错过了什么?也许在插座内部解决问题?

有帮助吗?

解决方案

有一个 节点validator 为XS提供的消毒方法的库。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top