javascript - 如何安全地执行用户生成的客户端脚本?

标签 javascript

所以我们都知道 eval 不好,允许用户创建自己的 JavaScript 在您的网站上运行是非常危险的,为各种安全风险敞开了大门。

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

基本上,系统会定期发出 AJAX 请求,触发 JS 事件,并在每次有新数据到达时通知客户端。允许上述用户脚本 Hook /订阅此事件,对接收到的数据执行用户算法,并输出算法结果。

我有以下问题...如果我允许用​​户创建他们自己的 JavaScript,他们可以使用各种花哨的技巧,例如发出跨浏览器未经授权的 AJAX 请求、调用意外的输入事件以及简而言之...尝试以恶意攻击系统。

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

所以我的问题是,我的网站如何才能为用户提供安全、有限的脚本访问权限?例如,是否有一个用 JavaScript 编写的 Lua 脚本解析器或类似的东西可以使用?

最佳答案

会像 ADsafe为您的网站工作?

关于javascript - 如何安全地执行用户生成的客户端脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7497610/

相关文章:

javascript - 如何禁用 twitter bootstrap 电子邮件验证弹出窗口?

javascript - 如何使用 JavaScript 和 Canvas 在图像上添加文本

javascript - Ajax和Mongodb,使用_id

asp.net mvc javascript 回发

javascript - 如何优化IndexedDb性能?多个indexeddb 与多个对象存储?

javascript - 始终滚动 div 元素而不是页面本身

javascript - Angular ng-include 不适用于 Razor 页面

javascript - 列上方的动态值 + jQuery Highcharts

javascript - MVC 5 中的数据库自动完成?

javascript - jquery - 找到整数或空格时拆分(即拆分类(class)代码)