項目填坑記-cookie

前段時間開發(fā)了一個用戶登錄的模塊瘩扼,需求很簡單兰怠,用戶輸入手機號和驗證碼,我們就會返回給用戶一套身份信息并保存在cookie里面霸妹。so easy十电,于是就有以下代碼:

// 大致意思如下,并非真實模塊中的代碼
document.cookie = 'token=xxxxxxxx;domain=xxx.com;path=/;expires=xxxx';

大功告成叹螟!但是鹃骂,問題也來了,這樣做并不安全罢绽,用戶的信息可以輕易的通過JS獲取畏线,XSSCSRF變的輕而易舉有缆。于是象踊,我們將種cookie的操作交給了服務端温亲,并給其中一個cookie加上了httponly屬性棚壁,這個屬性僅僅保證我們的cookie不能通過document.cookie來獲取,減小了用戶cookie被竊取的概率栈虚。

Set-Cookie:token1=xxxxx; expires=GMT Date; Max-Age=xxx; path=/; domain=xxx.com
Set-Cookie:token2=xxxxx; expires=GMT Date; Max-Age=xxx; path=/; domain=xxx.com; httponly

好啦袖外,再次大功告成。但是魂务,過了一段時間曼验,我們的網(wǎng)站多啦,同時存在了幾個域名粘姜,我們需要在用戶登錄的時鬓照,同時給多個域種cookie。OK孤紧,很簡單豺裆,我們只需要調(diào)用多個域名下的種cookie的接口,不就行啦号显?

事情沒有這么簡單臭猜,經(jīng)過測試之后發(fā)現(xiàn)我們的cookie在某些特定的瀏覽器下有可能跨域種cookie失敗。為什么呢押蚤?經(jīng)過一番google之后蔑歌,發(fā)現(xiàn)其實是一些瀏覽器對于跨域種cookie做了一些限制,我們需要用一些方法來解決限制揽碘。

P3P由萬維網(wǎng)協(xié)會研制次屠,它為Web用戶提供了對自己公開信息的更多的控制园匹。支持P3P的Web站點可以為瀏覽者聲明他們的隱私策略。

其實上面都是廢話帅矗,大概意思就是說你要在你的http header里面加入一個P3P協(xié)議的說明偎肃,詳細信息可以看這個歪果仁寫的文章"P3P, Cookies and IE6.0: A Case Study"

P3P:CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"

很開心,再次大功告成浑此。BUT累颂,現(xiàn)實總是這么殘酷,safari上仍然不能跨域種cookie凛俱。這又是為什么呢紊馏?根據(jù)蘋果爸爸的尿性來推測,肯定又是他做了什么安全性的限制蒲犬。果然朱监!在safari瀏覽器中打開設置 > 隱私 > 阻止cookie > 永不,打開上述設置之后原叮,跨域種cookie瞬間成功赫编。但是,我們總不能要求用戶一個個去打開這個設置吧奋隶?所以還要另尋解決辦法擂送。

后來我們發(fā)現(xiàn)其實對于safari來說所謂的第三方需要滿足兩個條件:

  1. 用戶從來沒有主動訪問該域名
  2. 該域名并沒有作為第一方種過cookie

基于以上兩點我們做了2個操作:

  1. 通過http 302的方式來跨域種cookie
  2. 在用戶訪問我們的域名之后,默認在訪問域名下種下一個記錄性的cookie唯欣,減小我們的域名種Cookie失敗的概率

好啦嘹吨,這次真的大功告成啦,寫一篇流水賬記錄一下這個坑境氢。

博客地址: ssh.today蟀拷,歡迎關注

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市萍聊,隨后出現(xiàn)的幾起案子问芬,更是在濱河造成了極大的恐慌,老刑警劉巖寿桨,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件此衅,死亡現(xiàn)場離奇詭異,居然都是意外死亡牛隅,警方通過查閱死者的電腦和手機炕柔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來媒佣,“玉大人匕累,你說我怎么就攤上這事∧椋” “怎么了欢嘿?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵衰琐,是天一觀的道長。 經(jīng)常有香客問我炼蹦,道長羡宙,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任掐隐,我火速辦了婚禮狗热,結果婚禮上,老公的妹妹穿的比我還像新娘虑省。我一直安慰自己匿刮,他們只是感情好,可當我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布探颈。 她就那樣靜靜地躺著熟丸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪伪节。 梳的紋絲不亂的頭發(fā)上光羞,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天,我揣著相機與錄音怀大,去河邊找鬼纱兑。 笑死,一個胖子當著我的面吹牛叉寂,可吹牛的內(nèi)容都是我干的萍启。 我是一名探鬼主播总珠,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼屏鳍,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了局服?” 一聲冷哼從身側響起钓瞭,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎淫奔,沒想到半個月后山涡,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡唆迁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年鸭丛,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片唐责。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡鳞溉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鼠哥,到底是詐尸還是另有隱情熟菲,我是刑警寧澤看政,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站抄罕,受9級特大地震影響允蚣,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜呆贿,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一嚷兔、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧做入,春花似錦谴垫、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至彩郊,卻和暖如春前弯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背秫逝。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工恕出, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人违帆。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓浙巫,卻偏偏與公主長得像,于是被迫代替她去往敵國和親刷后。 傳聞我的和親對象是個殘疾皇子的畴,可洞房花燭夜當晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 背景在HTTP協(xié)議的定義中,采用了一種機制來記錄客戶端和服務器端交互的信息尝胆,這種機制被稱為cookie丧裁,cooki...
    時芥藍閱讀 2,366評論 1 17
  • HTTP cookies,通常稱之為“cookie”含衔,已經(jīng)存在很長時間了煎娇,但是仍然沒有被充分理解。首要問題是存在許...
    NoFacePeace閱讀 473評論 0 1
  • 注:本文轉載自前端大全 背景 在HTTP協(xié)議的定義中贪染,采用了一種機制來記錄客戶端和服務器端交互的信息缓呛,這種機制被稱...
    楠小忎閱讀 673評論 0 0
  • 回想我們這一年走過的路,有歡喜也有悲傷杭隙。歡喜的是哟绊,我們一直彼此聯(lián)系,悲傷的是不知道這樣的關系要到何時寺渗。 明天是國民...
    茉莉19閱讀 305評論 2 8
  • 每周都會為小伙伴們推薦自己用到過的匿情,或者看到的一些超實用或者有趣的軟件和網(wǎng)站兰迫。軟件能有多好用,只有更好的炬称,沒有最好...
    業(yè)余玩家閱讀 744評論 6 10