在服务器发送的 JavaScript 代码上安全使用 eval()
Safe usage of eval() on server-sent JavaScript code
我正在使用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。
相关文章:
- 递归使用 eval() 是检查程序执行的好方法吗?
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- 使用javascript存储变量的最安全方式
- 为什么忽略了eval()代码中的语法错误
- 推荐在JavaScript中执行存储为字符串的函数,而不是使用eval
- 是否存在React Native“;WEB代码安全防护”;
- ES6 模板文字是否比 eval 更安全
- 当eval只执行服务器端数据时,在javascript中使用eval是否安全
- 从 postMessage 事件接收的 eval() 代码有多安全
- 在服务器发送的 JavaScript 代码上安全使用 eval()
- 内容安全策略指令:“script-src 'self' 'unsafe-eval'”
- 当代码可用时,Javascript中的eval真的有安全风险吗
- Javascript-在包含数学运算的安全字符串上使用eval的问题
- Chrome扩展'拒绝评估字符串作为JavaScript,因为'不安全的eval'
- 使用eval()来评估学生程序员的代码.安全漏洞
- JS eval安全问题
- javascript eval真的有那么大的安全威胁吗?
- 使用eval()的数据从服务器端安全吗?(如果没有,请提供其他选择)
- 谷歌图表不安全的eval
- 使用javascript eval()在输入中进行简单计算是安全的吗?