11

我正在使用 Node.js 和 Socket.io。我编写了一个应用程序,它可以从服务器发送 JavaScript 片段并在客户端执行它们。JavaScript 通过 Secure WebSocket (WSS) 发送,客户端有一个侦听器,它将执行通过服务器传递给它的任何代码。

这个简短的脚本演示了原理: http: //jsfiddle.net/KMURe/,您可以将 onScript 函数视为套接字侦听器。

问题

我可以采用哪些安全协议来确保此交易的安全?安全的 websocket 通道是否会使第三方难以充当中间人(在将代码发送到客户端之前更改代码)?

一些用例..

  • 动态分配的分布式计算。
  • 浏览器客户端可以从服务器动态学习。
  • 统一更新浏览器行为。
4

1 回答 1

8

eval(),即使您有合法用途,也很危险。您应该不惜一切代价避免使用它。小心使用它。

但是,如果确实需要,则可以通过"use strict"command使用严格模式。在 eval()严格函数中执行时,eval 的内容不会在直接作用域内泄漏。eval 中的代码将包含在eval()自身中(就好像它有自己的范围一样)。在演示中,尝试删除尾随xeval()返回undefined

但是,使用仍然eval()是危险的。如果您找到带有自定义字符串命令的 JSON 等替代方案,这些命令将在客户端解析,那就更好了。

于 2012-05-08T01:31:14.770 回答