对于允许开发人员添加自己的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>
有可能吗?
提前致谢。
答案 0 :(得分:5)
有两种众所周知的可能性:
<强> Google Caja 强>
Caja是一个 针对“虚拟iframe”的Google项目 基于原则 对象的功能。 Caja需要 JavaScript,HTML和CSS输入和 将其重写为HTML的安全子集 和CSS,加上一个JavaScript 函数没有自由变量。那 意味着这种功能的唯一方式 如果给出 a,则修改对象 主机引用该对象 页。强>
<强> Adsafe 强>
ADsafe 子集阻止脚本 访问任何全局变量或来自 直接访问文档对象 模型或其任何元素。代替, ADsafe为脚本提供访问权限 由ADSAFE提供的对象 页面的服务器,提供间接访问 到访客代码的DOM元素和 其他页面服务。
请注意,Adsafe不会修改脚本,而Caja会这样做。