如何使用javascript正确防范恶意输入?

时间:2013-03-10 19:29:14

标签: javascript node.js

我有一个使用node.js构建的聊天客户端,我想知道在发送到服务器之前我应该​​怎么做才能输入消息?

2 个答案:

答案 0 :(得分:2)

无。你不能阻止客户发送'坏'的东西。验证和清理应该在服务器上完成。在将其显示给客户端时,您应该清理/过滤/编码它。

也许(客户端):

socket.on('message', function(e) {
  txt = e.data;

  // HTML encode
  txt = txt.replace(/&/g, '&');
  txt = txt.replace(/</g, '&lt;');
  txt = txt.replace(/>/g, '&gt;');

  // Or strip tags
  txt = txt.replace(/<[^>]+>/g, '');

  // Or create a text node
  node = document.createTextNode(txt);
});

You should read this on HTML encoding/escaping.

答案 1 :(得分:1)

在将发送到服务器之前,你真的不需要做任何事情,只要过滤......你应该在服务器端进行过滤/验证。如果你这样做,客户端的人可以很容易地回避它。