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