javascript - 如果在服务器(nodeJS)上运行,此 JavaScript 代码的安全性如何?

标签 javascript node.js security eval code-injection

很好奇如果在服务器上执行这种类型的代码可能会出现什么不可预见的问题。或者是否有任何非eval替代方案。

var a = {b:1, c:2, d:3, e:[1,2,3]};
(function(path) { return eval('this'+path) }).call(a, '.e[2]');

最佳答案

鉴于 path 是静态值 (".e[2]") 并且 a 没有任何恶意访问者等,除了完全没有必要之外,这里没有什么不安全的地方。

但是,如果 path 确实来自客户端或其他不受信任的来源,那么将其传递给 eval 是最糟糕的事情。它可以做 JS 代码在 Node 中可以做的所有事情 - 这足以严重伤害你。

是的,有 tons of non-eval alternatives .

关于javascript - 如果在服务器(nodeJS)上运行,此 JavaScript 代码的安全性如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30580764/

相关文章:

javascript - Node js 创建服务器并连接

node.js - 如何向 Messenger Bot 的所有收件人发送通知?

javascript - 调整图像大小以在 HTML5 Canvas 中显示

javascript - 根据条件检查分配 $scope.chart.options - javascript

node.js - 有没有办法检查是否刚刚使用 Okta 身份验证 API 创建了新帐户?

java - run-Jetty-运行 Eclipse 插件 : allow only loopback connections

java - Micronaut 安全失败 "secure"

c++ - TeamViewer 如何以编程方式在 Windows 上模拟 Ctrl-Alt-Del?

javascript - Safari 的网站问题

javascript - 从存储在变量中的选项创建选择框