如何从代码注入中保护socket.io?

时间:2013-03-22 18:18:20

标签: javascript node.js socket.io serverside-javascript

所以我正在开发一个socket.io实时网络应用程序。 我的第一个担忧是“如果有些邪恶的用户试图通过Dev Tools或Firebug注入一些代码怎么办?”我在这里得到了答案。我的下一个问题是:“如果一些有罪恶的用户试图通过聊天和/或其他形式的字符串输入注入一些代码会怎样?”我得出的结论是,我不能自己解决这个问题。我知道我可以使用正则表达式来查找用户是否正在尝试注入代码,但是一旦代码被发送到服务器并存储到字符串就会被执行。 (例如:var data = " *asd "; while(1);* "; [用户发送字符串的地方是*]之间的字符串)。所以我的问题是:如何防止这种情况?换句话说如何清理用户输入?

1 个答案:

答案 0 :(得分:1)

您可以使用encodeURIComponent(userstring);

对用户输入进行编码

示例:

var userData = encodeURIComponent(" *asd "; while(1);* ");