利用过滤器、重写和包装器隔离 JavaScript
1. 引言
在当今的 Web 应用中,许多网站允许用户构建小工具或应用,这些应用可能来自不可信的来源。例如 OpenSocial 平台、iGoogle、Facebook 和雅虎的应用平台等。开发者希望使用像 JavaScript 这样富有表现力的语言,但网站需要确保提供给用户的应用不会带来安全威胁。
不可信的应用可能会尝试窃取 cookie、导航页面、替换密码框或发起其他攻击。虽然网站可以使用浏览器的 iframe 隔离,但 iframe 需要结构化的帧间通信机制。因此,语言级别的隔离和 iframe 隔离在未来的 Web 应用中都将发挥重要作用。
我们设计并分析了一种针对 ECMA 262 - 3 JavaScript 子集的隔离机制组合,该子集的表现力与 Facebook 的 FBJS 相当。隔离机制包括过滤特定构造、重写部分代码以确保安全使用,以及包装执行环境的属性以限制不可信代码的影响。
2. JavaScript 隔离问题
2.1 问题描述
当一个托管页面包含来自不可信源的内容,并在同一 JavaScript 环境中执行时,就会出现隔离问题。我们假设这些不可信内容可能会恶意操纵托管页面或其他应用使用的对象属性,因此将其视为攻击者控制的代码。
隔离机制旨在供能够在代码加载到浏览器执行环境之前访问这些不可信代码的网站使用。这可以通过在网站聚合页面及其组件,或者在浏览器前设置代理来识别和修改可信与不可信的 JavaScript 来实现。
2.2 攻击者模型
攻击者可能设计恶意的 JavaScri
超级会员免费看
订阅专栏 解锁全文
402

被折叠的 条评论
为什么被折叠?



