Javascript 如何从代码注入中保护socket.io?
所以我正在开发一个socket.io实时web应用程序。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);*”;[其中用户发送的字符串介于*]之
我首先关心的是“如果某个恶意用户试图通过开发工具或Firebug注入一些代码怎么办?”我在这里得到了答案。我的下一个担忧是:“如果某个恶意用户试图通过聊天和/或其他形式的字符串输入注入一些代码怎么办?”我得出结论,我自己无法解决这个问题。我知道我可以使用regex来查找用户是否试图注入代码,但一旦代码被发送到服务器并存储为字符串,它就会被执行。(例如:
var data=“*asd”;while(1);*”
;[其中用户发送的字符串介于*]之间)。因此我的问题是:如何防止这种情况发生?换句话说,如何清理用户输入?您可以使用
例如:
var userData = encodeURIComponent(" *asd "; while(1);* ");
你必须将所有用户输入都视为字符串你这是什么意思?我确实将所有用户输入都视为字符串..对不起,我似乎不理解你的意思。如果输入总是被视为字符串,那么用户输入
while(1);
while(1)将发生的事情是聊天中的其他用户将看到while(1)是的,我知道。但这和XSS中的问题不一样吗?如果他输入“他不结束字符串吗?”?我很困惑服务器是如何处理这一点的。您可以在Node中完成