如何实现安全的用户生成的客户端脚本执行?

时间:2011-09-21 09:34:59

标签: javascript

所以我们都知道 eval 很糟糕,允许用户创建自己的JavaScripts以在您的网站上运行可能非常危险,为各种安全风险敞开大门。

然而,我的挑战是提出一个解决方案,允许用户创建自己的自定义脚本片段,这些片段将在客户端执行。这些脚本基本上是预测算法,允许每个用户构建他们自己的自定义预测策略,计算和处理通过AJAX提供给他们的一组数据。

基本上,在规则的时间间隔内,系统会发出一个AJAX请求,一个JS事件被触发,每次新数据到达时都会通知客户端。允许上述用户脚本挂钩/订阅此事件,对接收到的数据执行用户算法,并输出算法结果。

我遇到以下问题...如果我允许用​​户创建他们自己的JavaScripts,他们可以提取各种花哨的技巧,例如制作跨浏览器的未经授权的AJAX请求,调用意外的输入事件以及简单的...恶意攻击系统。

我需要封装这些脚本,限制它们使用浏览器上下文。例如,他们无法发出AJAX请求,也无法在页面上调用点击事件。他们唯一的访问权限是通过预先确定的输入>进程>输出接口提供的数据。

所以我的问题是,我的网站如何,给用户,安全,有限的脚本访问?例如,有一个用JavaScript编写的Lua脚本解析器或类似的东西可以使用吗?

1 个答案:

答案 0 :(得分:2)

ADsafe之类的内容适用于您的网站吗?