使用过滤器、重写和包装器隔离 JavaScript
在 Web 开发中,JavaScript 的安全性至关重要。当网页包含不可信内容时,需要采取措施隔离这些代码,防止其访问敏感属性。本文将介绍如何使用过滤器、重写和包装器技术来实现 JavaScript 的安全隔离。
1. JavaScript 属性访问类型
在 JavaScript 中,属性访问主要分为显式和隐式两种类型:
- 显式属性访问 :通过特定表达式(如 x 、 e.mp 和 e1[e2] )直接访问用户属性。
- 隐式属性访问 :在语义的中间评估步骤中隐式访问属性。例如,表达式 "a" + o 会隐式调用 o 的 toString 属性。所有可能被隐式访问的属性名称集合为 Pnat ,包括 {0,1,2,...} 、 toString 、 toNumber 等。
2. 动态代码生成与全局对象访问
- 动态代码生成 :JSE2 中只有
eval和Function这两个原生函数可以动态生成新代码。 - 全局对象访问 :全局对象在初始堆状态下可
过滤器、重写和包装器实现 JS 安全隔离
超级会员免费看
订阅专栏 解锁全文
26

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



