gpt4 book ai didi

JavaScript 函数构造函数解析安全性

转载 作者:行者123 更新时间:2023-11-28 03:46:27 25 4
gpt4 key购买 nike

使用 Function constructor 时在 JavaScript 中,函数对象是根据给定的代码动态创建的:

const input = 'return 2 + 3;';   // (1)
const fun = new Function(input); // (2)
const ret = fun(); // (3)

假设输入字符串(1)是任意用户输入,解析它(2)是否不安全,即使它从未被评估(3 )

编辑:

我直接从用户输入接收字符串(1),例如通过网络。它完全未经过滤,除了假设它是恶意的之外,我无法验证它。我可以在 Function 构造函数周围放置一个 try/catch 以防止解析时出现语法错误,但我对其他安全问题特别感兴趣(破坏众所周知的全局变量,如 https://haacked.com/archive/2009/06/25/json-hijacking.aspx/ )。

最佳答案

应该很安全。 JSON 劫持是一个错误,正是由于这个原因而被修复。

解析它只告诉你它在语法上是否有效,没有执行任何输入。然而,解析在性能方面可能会付出高昂的代价,因此如果攻击者控制了输入,它可能会被用来对您的环境进行 DOS。

关于JavaScript 函数构造函数解析安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48437026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com