gpt4 book ai didi

使用 eval 或 domsanitizer 执行自定义用户脚本的 Javascript

转载 作者:行者123 更新时间:2023-12-02 21:05:04 26 4
gpt4 key购买 nike

我们正在开发 Angular 8 PWA 应用程序。该应用程序的一部分允许我们的客户创建自己的自定义表单来收集数据。

作为开发的一部分,我们正在整合一组函数来与数据交互。然而,由于我们很难为每个场景提供一个功能,我们正在考虑允许用户管理员创建自己的脚本以保存在我们的数据库中并在表单中执行。

为了实现这一点,我们正在考虑通过 DomSanitizer.bypassSecurityTrustScript() 传递脚本

或者可能是“邪恶”的 javascript eval()

这将在一个独立的函数中运行,我们将在其中提供对应用程序内一组有限函数的访问。例如:

if (fnGetFieldValue('FIELD1') === fnGetFieldValue('FIELD2')) {setFnFieldValue('FIELD3')= 'PASS')}

其中 fnGetFieldValue() 和 setFnFieldValue 将是脚本可访问的定义函数,以运行一组有限的操作。

问题是,我们确实对允许此功能存在重大安全顾虑,即明显的 XSS 脚本攻击。 是否有任何策略可以安全地运行这些用户自定义脚本?

鉴于 Squarepace、Zoho、powerapps 等公司允许用户运行自定义代码,这些解决方案是否也容易出现相同的问题?有谁知道他们如何解决 eval 的“邪恶”使用?

了解对此的想法以及是否有任何 npm 包可以处理这个问题以清理一些相关的功能?

最佳答案

使用 eval 或通过嵌入式脚本将用户的脚本集成到您自己的代码中时遇到的大问题是:该代码可以访问您的应用程序的上下文,对其进行修改并带来安全风险(例如 XSS )。

避免这种情况的一种方法是强制用户的脚本在沙盒中运行,预定义的上下文无法泄漏。对此有帮助的 NPM 包是 https://www.npmjs.com/package/safe-eval .

关于使用 eval 或 domsanitizer 执行自定义用户脚本的 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61251459/

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