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