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