項目填坑記-cookie

前段時間開發了一個用戶登錄的模塊,需求很簡單,用戶輸入手機號和驗證碼,我們就會返回給用戶一套身份信息并保存在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

好啦,再次大功告成。但是,過了一段時間,我們的網站多啦,同時存在了幾個域名,我們需要在用戶登錄的時,同時給多個域種cookie。OK,很簡單,我們只需要調用多個域名下的種cookie的接口,不就行啦?

事情沒有這么簡單,經過測試之后發現我們的cookie在某些特定的瀏覽器下有可能跨域種cookie失敗。為什么呢?經過一番google之后,發現其實是一些瀏覽器對于跨域種cookie做了一些限制,我們需要用一些方法來解決限制。

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

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

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

很開心,再次大功告成。BUT,現實總是這么殘酷,safari上仍然不能跨域種cookie。這又是為什么呢?根據蘋果爸爸的尿性來推測,肯定又是他做了什么安全性的限制。果然!在safari瀏覽器中打開設置 > 隱私 > 阻止cookie > 永不,打開上述設置之后,跨域種cookie瞬間成功。但是,我們總不能要求用戶一個個去打開這個設置吧?所以還要另尋解決辦法。

后來我們發現其實對于safari來說所謂的第三方需要滿足兩個條件:

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

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

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

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

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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,825評論 6 546
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,814評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,980評論 0 384
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 64,064評論 1 319
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,779評論 6 414
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,109評論 1 330
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,099評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,287評論 0 291
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,799評論 1 338
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,515評論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,750評論 1 375
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,221評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,933評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,327評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,667評論 1 296
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,492評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,703評論 2 380

推薦閱讀更多精彩內容

  • 背景在HTTP協議的定義中,采用了一種機制來記錄客戶端和服務器端交互的信息,這種機制被稱為cookie,cooki...
    時芥藍閱讀 2,380評論 1 17
  • HTTP cookies,通常稱之為“cookie”,已經存在很長時間了,但是仍然沒有被充分理解。首要問題是存在許...
    NoFacePeace閱讀 478評論 0 1
  • 注:本文轉載自前端大全 背景 在HTTP協議的定義中,采用了一種機制來記錄客戶端和服務器端交互的信息,這種機制被稱...
    楠小忎閱讀 685評論 0 0
  • 回想我們這一年走過的路,有歡喜也有悲傷。歡喜的是,我們一直彼此聯系,悲傷的是不知道這樣的關系要到何時。 明天是國民...
    茉莉19閱讀 315評論 2 8
  • 每周都會為小伙伴們推薦自己用到過的,或者看到的一些超實用或者有趣的軟件和網站。軟件能有多好用,只有更好的,沒有最好...
    業余玩家閱讀 756評論 6 10