Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从代码注入中保护socket.io?_Javascript_Node.js_Socket.io_Serverside Javascript - Fatal编程技术网

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

Javascript 如何从代码注入中保护socket.io?,javascript,node.js,socket.io,serverside-javascript,Javascript,Node.js,Socket.io,Serverside Javascript,所以我正在开发一个socket.io实时web应用程序。 我首先关心的是“如果某个恶意用户试图通过开发工具或Firebug注入一些代码怎么办?”我在这里得到了答案。我的下一个担忧是:“如果某个恶意用户试图通过聊天和/或其他形式的字符串输入注入一些代码怎么办?”我得出结论,我自己无法解决这个问题。我知道我可以使用regex来查找用户是否试图注入代码,但一旦代码被发送到服务器并存储为字符串,它就会被执行。(例如:var data=“*asd”;while(1);*”;[其中用户发送的字符串介于*]之

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

例如:

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

你必须将所有用户输入都视为字符串你这是什么意思?我确实将所有用户输入都视为字符串..对不起,我似乎不理解你的意思。如果输入总是被视为字符串,那么用户输入
while(1);
while(1)将发生的事情是聊天中的其他用户将看到
while(1)是的,我知道。但这和XSS中的问题不一样吗?如果他输入“他不结束字符串吗?”?我很困惑服务器是如何处理这一点的。您可以在Node中完成