4
对于我们的论文,我们需要开发AdJail方法的原型,该方法可提供针对恶意广告的安全性。该方法通过将广告脚本放置在不同来源的iframe中的“shadowpage”中来隔离广告脚本。 (受同源策略保护)通过将原始页面的内容复制到shadowpage,adscript只能访问发布者允许访问的内容。为其他域的iframe创建内容
问题在于为shadowpage创建iframe。 本来,我们实现了这个:
if (document.createElement && (iframe = document.createElement('iframe'))) {
iframe.id = "shadowpage";
iframe.name = "shadowpage";
iframe.height = 1400;
iframe.width = 1400;
document.body.appendChild(iframe);
var shadowScript = document.createElement("script");
shadowScript.src = "ShadowTunnelScript.js";
iframe.contentDocument.body.appendChild(shadowScript);
adUrl = adScript;
}
显然,这并没有提供同源策略的要求,安全性,因为这IFRAME具有相同的来源包含页面。
我们的另一种方法是使用iframe集的src一个页面,不同来源如下:
if (document.createElement && (iframe = document.createElement('iframe'))) {
iframe.id = "shadowpage";
iframe.name = "shadowpage";
iframe.height = 1400;
iframe.width = 1400;
iframe.src = "http://***/AdJail/Shadowpage.html";
//iframe.style.display = "none";
document.body.appendChild(iframe);
}
但在这种情况下,我们的原型的用户需要在不同的创建shadowpage自己服务器。
我们的问题是:是否有可能创建具有不同来源的iframe,动态生成此iframe的内容,以便用户只需调用库而不需要自己提供shadowpage。
这可能是通过首先生成iframe的内容然后以某种方式改变iframe的来源?
HTML5对iframe的“沙箱”属性。但我想浏览器支持需要时间才能赶上。 – StasM