我正在与Node.js和socket.io建立一个简单的小聊天
当用户键入他的消息时,它将被广播给所有其他用户.
服务器发送消息:
io.sockets.emit('fromServerToClient', { "message": message });
Run Code Online (Sandbox Code Playgroud)
客户端显示它:
socket.on('fromServerToClient', function (data) {
$('#messages').append(data.message + '<br />');
});
Run Code Online (Sandbox Code Playgroud)
但是当你发送类似的东西时<script>alert(1);</script>,它会在每个客户端浏览器上执行.
这是一个严重的安全漏洞,我想尽可能地避免它.我见过人们逃避&, <, > and "角色,但我认为这还不够!
如何在我的聊天中100%确定没有XSS漏洞?
顺便说一下,我总是指定字符集来避免UTF-7攻击.
谢谢你的帮助.