ins廣告帖漫談--跨域訪問cookie

【作者: 0han 未經授權請勿轉載文章,轉載代碼請保留注釋,作者及出處】

reference:
  1. cnblogs用戶@waters的文章
  2. JavaScript基礎教程(第9版), Dori Smith Tome Negrino著凌盯,陳建甌 柳靖 譯, 中國工信出版社
  3. 大寶日記博主

在刷instagram的時候,看到一個和普通帖子一樣模式的廣告推廣帖皱蹦,來自買手網站farfetch.com,帖子里的幾個圖片都是我最近瀏覽過的衣服讥电,一個問題就浮現出我的腦海,farfetch的ins推廣怎么會把我在他們網站的瀏覽行為結合到我的ins賬號的猜年?尤其是在沒有登錄farfetch的狀態(tài)下抡锈。那可能出現的情況只有ins讀取了我本地由farfetch創(chuàng)建的cookie,然后針對保存在其中我最近的瀏覽信息構建推廣貼乔外,但結合cookie的定義床三,“一個cookie只能由最初寫它的服務器讀取。瀏覽器內部的cookie機制不允許你讀或寫別人所寫的cookie杨幼,你只能訪問自己的cookie”撇簿。
本文將探索“跨域訪問cookie”的可行性

cookie是什么聂渊?cookie其實就是一段文本,JavaScript開發(fā)人員可以在其中儲存一些信息四瘫。它不能獲得用戶的真實身份汉嗽,沒法傳輸惡意腳本。它存在的目的就是網站給你瀏覽器的一個識別找蜜,這樣你下一次訪問這個站點的時候饼暑,網站就可以識別出你。

cookie是一個具有特定格式的字符串:
cookieName=cookieValue;expires=expirationDateGMT;path=URLpath;domain=siteDomain
cookie需要給它設定一個過期時間洗做,過了這個時間他就會自己銷毀弓叛。

下面是我構建的兩個網頁,第一個輸入名字诚纸,會生成一個cookie撰筷,第二個會顯現出你的名字,根據第一個網頁的cookie畦徘,title命名就按照實際問題中的farfetch 和Instagram毕籽。代碼如下:
<!DOCTYPE html>
<html>
<head>
<title>Farfetch</title>
<script src='script01.js'></script>
</head>
<body>
<form id="cookieForm" action="#">
<h1>Enter Your Name: <input type="text" id="nameField"></h1>
</form>
</body>
</html>

它里面引用的script01.js代碼如下:

window.addEventListener("load",nameFieldInit,false);//窗口加載完成后會調用nameFieldInit這個函數

function nameFieldInit(){//設定cookie值,窗口加載完成后井辆,會調用這個函數关筒,見上
var userName= "";//變量userName初始化
if (document.cookie != ""){ userName=document.cookie.split("=")[1]; }
document.getElementById('nameField').value=userName;
document.getElementById('nameField').onblur=setCookie;
document.getElementById('cookieForm').onsubmit=setCookie;

}
function setCookie() { var expireDate=new Date(); expireDate.setMonth(expireDate.getMonth()+6); var userName = document.getElementById("nameField").value; document.cookie="userName="+userName + ";expires="+expireDate.toGMTString();//寫入cookie document.getElementById("nameField").blur(); return false; }

Instagram_page代碼如下,這個頁面需要調用farfetch創(chuàng)建的cookie:

<!DOCTYPE html>
<html>
<head>
<title>Instagram</title>
<script src="script02.js"></script>
</head>
<body>
<h1 id="nameField"> </h1>
</body>
</html>
`

他里面引用的script02.js代碼如下:

window.addEventListener("load",nameFieldInit,false);
function nameFieldInit() { if (document.cookie != "") { document.getElementById('nameField').innerHTML = "Hello," + document.cookie.split("=")[1]; } }

測試以后是成功的掘剪,在同一個域下平委,cookie肯定是可以互相調用,這時候更改hosts文件夺谁,設定為兩個域廉赔,就沒有辦法。在文首列出的reference里匾鸥,博主給了一個解決方案蜡塌,使用iframe,通過搜索勿负,大寶日記博主總結了如下幾種解決跨域cookie的方案:
前端解決方案
1馏艾、JSONP2、Iframe參考:http://liuwanlin.info/shi-shi-kua-yu-tong-xin-iframe/
后端解決方案
1奴愉、反向代理參考:http://wenzhixin.net.cn/2014/06/05/apache_proxy
2琅摩、CORS跨域資源共享參考
1:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS
關于跨域問題的討論:參考1:https://segmentfault.com/a/1190000000718840參考2:https://www.zhihu.com/question/19618769

我不會php(所以我不說php是世界上最好的語言......)他的日志中解決跨域的后端方案,CORS(Cross-Origin-Resource-Shares)跨域資源共享,在后端服務器直接設置header內容Access-Contrl-Allow-Origin,php代碼這么寫的:
<?php header('Access-Control-Allow-Origin: '.$_SERVER['HTTP_ORIGIN']); header('Access-Control-Allow-Methods: POST, GET, OPTIONS'); header('Access-Control-Max-Age: 1000'); header('Access-Control-Allow-Headers: Content-Type');
Apache配置:
Header set Access-Control-Allow-Origin *instagram.com/
這樣可以規(guī)避XSS(跨站腳本攻擊)
由此看來锭硼,跨站訪問cookie并不是簡單一個”不行“房资。farfetch的服務器后端只要授權了ins,ins就可以訪問檀头。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末轰异,一起剝皮案震驚了整個濱河市岖沛,隨后出現的幾起案子,更是在濱河造成了極大的恐慌搭独,老刑警劉巖婴削,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異牙肝,居然都是意外死亡唉俗,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門惊奇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來互躬,“玉大人播赁,你說我怎么就攤上這事颂郎。” “怎么了容为?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵乓序,是天一觀的道長。 經常有香客問我坎背,道長替劈,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任得滤,我火速辦了婚禮陨献,結果婚禮上,老公的妹妹穿的比我還像新娘懂更。我一直安慰自己眨业,他們只是感情好,可當我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布沮协。 她就那樣靜靜地躺著龄捡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪慷暂。 梳的紋絲不亂的頭發(fā)上聘殖,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天,我揣著相機與錄音行瑞,去河邊找鬼奸腺。 笑死,一個胖子當著我的面吹牛血久,可吹牛的內容都是我干的突照。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼洋魂,長吁一口氣:“原來是場噩夢啊……” “哼绷旗!你這毒婦竟也來了喜鼓?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤衔肢,失蹤者是張志新(化名)和其女友劉穎庄岖,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體角骤,經...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡隅忿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了邦尊。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片背桐。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蝉揍,靈堂內的尸體忽然破棺而出链峭,到底是詐尸還是另有隱情,我是刑警寧澤又沾,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布弊仪,位于F島的核電站,受9級特大地震影響杖刷,放射性物質發(fā)生泄漏励饵。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一滑燃、第九天 我趴在偏房一處隱蔽的房頂上張望役听。 院中可真熱鬧,春花似錦表窘、人聲如沸典予。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽熙参。三九已至,卻和暖如春麦备,著一層夾襖步出監(jiān)牢的瞬間孽椰,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工凛篙, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留黍匾,地道東北人。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓呛梆,卻偏偏與公主長得像锐涯,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子填物,可洞房花燭夜當晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內容