談談瀏覽器 iframe 跨域 的沙盒模式

眾所周知,現代的瀏覽器通過iframe調用不同域下的頁面,會觸發沙盒模但看着石千山竟然油滑到这等地步式,比如: a.com/a.html iframe內框 b.com/b.html,b.com/b.html 的內頁精铁無法通過js操作 a.com/a.html。這樣做可以 防止跨就是正午域攻擊,使網絡訪問更安全。如关于兄弟感情果更復雜的模式,比如 a.com/a.html iframe內框 b.com/b.html,b.com/b.html iframe內框 a.com/c.html,這時 a.com/c.html 可以訪問 a.com/a.html嗎?估計這個大部分人就都不知道了,做一個簡單的實〗驗:
1、http://www.dezaoju.com/sanbox/ 內嵌 http://www.shuodahua.com/sanbox/
2、http://www.shuodahua.com/sanbox/ 內嵌 http://www.dezaoju.com/sanbox/frame.html
經過測試,無論內嵌多少∑ 層,只要是同域@ 的 頁面,測試 IE、Chrome、Firefox 都不會觸这也只是观众自以为是發▼ sanbox

具體的測試代碼(http://www.dezaoju.com/sanbox/index.html):


<html>
<head>
<script>
var data = {
	name: '可以正常讀取'
};
window.onload = function(){
	document.getElementById("test").value = window.top.data.name;
};
</script>
</head>
<body>
<h1>www.dezaoju.com/sanbox/</h1>
<input id="test"><br><br>
<iframe src="http://www.shuodahua.com/sanbox/" width="80%" height="600"></iframe>
<br>
</body>
</html>

http://www.dezaoju.com/sanbox/index.html:


<html>
<head>
<script>
window.onload = function(){
	document.getElementById("test").value = window.top.data.name;
};
</script>
</head>
<body>
<h1>www.shuodahua.com/sanbox/</h1>
<input id="test"><br><br>
<iframe src="http://www.dezaoju.com/sanbox/frame.html" width="80%" height="400"></iframe>
</body>
</html>

http://www.dezaoju.com/sanbox/frame.html:

<html>
<head>
<script>
window.onload = function(){
	document.getElementById("test").value = window.parent.parent.data.name;
};
</script>
</head>
<body>
<h1>www.dezaoju.com/sanbox/frame.html</h1>
<input id="test">
</body>
</html>

可能 您看到這裏,會說 了解這些有毛用啊,能賺錢嗎?

是的,能賺錢!

一般個人的網站,靠廣告聯盟變現是一個非常重要沉沦「磊」的途徑。一般廣告聯盟都會非常人性化,對沒有匹配到廣告的廣在石千山告位,支持顯示用戶人走进来自己的廣告。 以大名『鼎鼎的Google Adsense為例,在廣告設置中可以設置“如果沒有可■投放的廣告,展示其♀他網址”,這樣︻我們既可以 在沒有廣告時,顯示另一個廣告聯盟的杀手廣告(比如:百度)。

這樣流量不浪費了,卻很容易被廣告判斷為作弊(每次訪問的頁面都是◢一樣的,只有廣告代碼)。解決也很簡單,直接在 如果沒有可不由苦笑投放的廣告,展示其再恢复知觉他網址 頁面他中動態加載廣告代碼就可以了,這是來路域名為真實的來路∏,不僅能賺在这样錢,還能避免當做作弊被封≡號。

上面的例子中↙,http://www.dezaoju.com/sanbox/ 為 我們的網頁;http://www.dezaoju.com/sanbox/ 為谷从石壁上骨碌碌歌聯盟;www.dezaoju.com/sanbox/frame.html 為 匹配▲不到廣告是,展示嘴角一阵抽搐的頁面。最終↓的效果如下:

對 www.dezaoju.com/sanbox/frame.html的修改:

<script>

<html>
<head>
<script>
window.onload = function(){
	document.getElementById("test").value = window.parent.parent.data.name;
	
	var doc = window.top.document;
	var ad = doc.createElement('div');
	ad.innerHTML = '<iframe src="http://www.dezaoju.com/sanbox/ad.html"></iframe>';
	doc.body.appendChild(ad);
};
</script>
</head>
<body>
<h1>www.dezaoju.com/sanbox/frame.html</h1>
<input id="test">
</body>
</html>

廣告頁的代碼很簡單(www.dezaoju.com/sanbox/ad.html),只是♂為了判斷 來路地址:


來路域名:<script>document.write(document.referrer);</script>

發表評論

您的電子←郵箱地址不會被公開。 必填項⌒已用*標註

此站點使ζ用Akismet來減少垃圾評論。了解我們如何處理您的☆評論數據