我正在使用Node.js和Socket.io。我编写了一个应用程序,可以从服务器发送JavaScript代码段并在客户端上执行它们。JavaScript通过安全WebSocket(WSS)发送,并且客户端具有侦听器,该侦听器将执行通过服务器传递给它的任何代码。
这个简短的脚本演示了原理:http : //jsfiddle.net/KMURe/,您可以将onScript函数视为套接字侦听器。
我可以采用哪些安全协议来确保该交易的安全性?安全的网络套接字渠道是否会使第三方难以充当中间人(在将代码发送给客户端之前更改代码)?
eval(),即使您合法使用,也很危险。您应 避免不惜一切代价使用它。 小心使用。
eval()
但是,如果确实需要,则可以通过"use strict"command使用严格模式。当 eval()在严格函数中执行时,eval的内容不会在即时范围内泄漏。评估中的代码将包含在eval()自身中(就像它具有自己的作用域一样)。在演示中,尝试删除尾部x和eval()返回undefined。
"use strict"
x
undefined
但是,使用仍然eval()很危险。最好是使用自定义字符串命令(如将在客户端进行解析)找到JSON之类的替代方法。