对于允许开发人员添加自己的Javascript应用程序的项目,我需要将Javascript的范围限制在某个特定范围内div
.例如,每个开发人员都可以访问自己的div.
<div id="md5_of_a_salt_and_app_id">
<script>
/* This area should not be able to modify window element
* or other divs than parent one
*/
</script>
</div>
Run Code Online (Sandbox Code Playgroud)
有可能吗?
提前致谢.
有两个众所周知的可能性:
Caja是基于对象功能原理的"虚拟iframe"Google项目.Caja接受JavaScript,HTML和CSS输入,并将其重写为HTML和CSS的安全子集,以及没有自由变量的单个JavaScript函数.这意味着这样的函数可以修改对象的唯一方法是主机页面是否给出了对象的引用.
ADsafe 子集阻止脚本访问任何全局变量或直接访问文档对象模型或其任何元素.相反,ADsafe允许脚本访问页面服务器提供的ADSAFE对象,从而间接访问访客代码的DOM元素和其他页面服务.
请注意,Adsafe不会修改脚本,而Caja会这样做.