Я строю простой поболтать с Node.js и Socket.ioSecure Node.js чат (избежать XSS)
Когда пользователь его сообщение, оно транслируется всем остальным пользователям.
Сервер отправляет сообщение:
io.sockets.emit('fromServerToClient', { "message": message });
Client отображает его:
socket.on('fromServerToClient', function (data) {
$('#messages').append(data.message + '<br />');
});
Но когда вы посылаете что-то вроде <script>alert(1);</script>
, она выполняется на каждом клиентском браузере.
Это серьезный недостаток безопасности, и я хочу избежать его как можно большего. Я видел, как люди бежали &, <, > and "
персонажей, но я не думаю, что этого достаточно!
Как я могу быть на 100% уверен, что у меня нет уязвимости XSS в чате?
Кстати, я всегда указываю кодировку, чтобы избежать атак UTF-7.
Благодарим за помощь.
Большое спасибо за этот очень хороший ответ. Я не думал, что это будет так просто, и я могу сказать, что он отлично работает. – mimipc