所以我们都知道 eval 很糟糕,允许用户创建自己的JavaScripts以在您的网站上运行可能非常危险,为各种安全风险敞开大门。
然而,我的挑战是提出一个解决方案,允许用户创建自己的自定义脚本片段,这些片段将在客户端执行。这些脚本基本上是预测算法,允许每个用户构建他们自己的自定义预测策略,计算和处理通过AJAX提供给他们的一组数据。
基本上,在规则的时间间隔内,系统会发出一个AJAX请求,一个JS事件被触发,每次新数据到达时都会通知客户端。允许上述用户脚本挂钩/订阅此事件,对接收到的数据执行用户算法,并输出算法结果。
我遇到以下问题...如果我允许用户创建他们自己的JavaScripts,他们可以提取各种花哨的技巧,例如制作跨浏览器的未经授权的AJAX请求,调用意外的输入事件以及简单的...恶意攻击系统。
我需要封装这些脚本,限制它们使用浏览器上下文。例如,他们无法发出AJAX请求,也无法在页面上调用点击事件。他们唯一的访问权限是通过预先确定的输入>进程>输出接口提供的数据。
所以我的问题是,我的网站如何,给用户,安全,有限的脚本访问?例如,有一个用JavaScript编写的Lua脚本解析器或类似的东西可以使用吗?