学习笔记
JavaScript权威指南——JavaScript的子集和扩展
子集的安全性
为了让JavaScript代码静态的通过安全检查,必须移除一些JavaScript特性:- eval()和Function()构造函数在任何安全子集里都是禁止使用的,因为它们可以执行任意代码,而且JavaScript无法对这些代码做静态分析。
- 禁止使用this关键字,因为函数(在非严格模式中)可以通过this访问全局对象。而沙箱系统的一个重要目的就是组织对全局对象的访问。
- 禁止使用with语句,因为with语句增加了静态代码检查的难度。
- 禁止使用某些全局变量。
- 禁止使用某些属性和方法,以免在沙箱中的代码拥有过多的权限。这些属性和方法包括argumen[......]