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