0

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

4

1 回答 1

1

您可以使用encodeURIComponent(userstring);对用户输入进行编码。

例子:

var userData = encodeURIComponent(" *asd "; while(1);* ");
于 2013-03-22T18:47:43.873 回答