所以我们都知道 eval 不好,允许用户创建自己的 JavaScript 在您的网站上运行是非常危险的,为各种安全风险敞开了大门。
然而,我面临的挑战是想出一个解决方案,允许用户创建他们自己的自定义脚本片段,这些片段将在客户端执行。这些脚本基本上是预测算法,允许每个用户构建他们自己的定制预测策略,计算和处理通过 AJAX 提供给他们的一组数据。
基本上,系统会定期发出 AJAX 请求,触发 JS 事件,并在每次有新数据到达时通知客户端。允许上述用户脚本 Hook /订阅此事件,对接收到的数据执行用户算法,并输出算法结果。
我有以下问题...如果我允许用户创建他们自己的 JavaScript,他们可以使用各种花哨的技巧,例如发出跨浏览器未经授权的 AJAX 请求、调用意外的输入事件以及简而言之...尝试以恶意攻击系统。
我需要封装这些脚本,限制它们使用浏览器上下文。例如,他们不能发出 AJAX 请求,或调用页面上的点击事件。他们唯一的访问权限是通过预先确定的输入>处理>输出接口(interface)访问所提供的数据。
所以我的问题是,我的网站如何才能为用户提供安全、有限的脚本访问权限?例如,是否有一个用 JavaScript 编写的 Lua 脚本解析器或类似的东西可以使用?
最佳答案
会像 ADsafe为您的网站工作?
关于javascript - 如何安全地执行用户生成的客户端脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7497610/