javascript - 检查 javascript 源是否使用了禁止的函数

标签 javascript parsing

我想在网站上运行用户提供的 javascript,但在此之前,我需要(从算法上)检查提供的 javascript 源是否遵循一组规则(例如,不使用 eval() 函数,不使用 setTimeout()/setInterval( )函数等)。

此外,检查来源是否有效是一件好事。 工具可以是任何东西,因为是在服务器端执行的。 您有任何对此可能有用的想法吗?

编辑:代码将在 Web Worker 环境中执行

最佳答案

仅通过扫描源代码无法判断脚本是否将使用禁止的函数。您可以更改脚本执行的环境。

您所做的不是简单的文本搜索。 JavaScript 是一种非常动态的语言,您可以有效地调用“禁止”函数,而无需在源代码中找到该函数的名称!

window['e'+'v'+'a'+'l']

也不可能简单地执行脚本并跟踪访问哪些函数,因为您无法访问所有代码路径。

要禁止使用特定函数,您必须在不存在这些函数的沙箱中运行代码。

关于javascript - 检查 javascript 源是否使用了禁止的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14132489/

相关文章:

javascript - 如何在 JavaScript 中设置延迟?

javascript - 使用 Mocha、Chai、chaiAsPromised 和 Sinon 测试 js promises

javascript - 了解 IE 9、firefox 和 Chrome 中 onmousemove 事件的鼠标位置

c++ - 如何读取可能以字符串或数字开头的行?

c# - StringWriter.ToString() 正在破坏 xml C#

javascript - 将鼠标悬停在按钮外?

JavaScript 按属性值对字典进行排序

python - 解析外部 XML 还是访问数据库更有效?

ios - 使用 Swift 发布 JSON

java - 安全字符串到 BigDecimal 的转换