我相信 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, '&')
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/"/g, '"');
}
这足够还是我错过了什么?甚至可以在 socket.js 中解决问题?