我相信socket.io有一个XSS漏洞,我想知道如何解决这个问题。
请参阅我的帖子pubsub redis with socket.io,其中有一个/ XSS漏洞。
来自redis-cli:
publish pubsub "<script>alert('Hello world!');</script>"
您会看到一个警告对话框Hello world!
BAD ...
为了解决这个问题,我从visionmedia的jade库中复制了以下代码片段并想知道这是否足够?
/**
* Escape the given string of `html`.
*
* @param {String} html
* @return {String}
* @api private
*/
function sanitize(html){
return String(html)
.replace(/&(?!\w+;)/g, '&')
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/"/g, '"');
}
这是否足够或我遗失了什么?也许甚至在socket.js内解决问题?