国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

項目填坑記-cookie

Lyux / 2208人閱讀

摘要:好啦,再次大功告成。由萬維網協會研制,它為用戶提供了對自己公開信息的更多的控制。支持的站點可以為瀏覽者聲明他們的隱私策略。果然在瀏覽器中打開設置隱私阻止永不,打開上述設置之后,跨域種瞬間成功。

前段時間開發了一個用戶登錄的模塊,需求很簡單,用戶輸入手機號和驗證碼,我們就會返回給用戶一套身份信息并保存在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來說所謂的第三方需要滿足兩個條件:

用戶從來沒有主動訪問該域名

該域名并沒有作為第一方種過cookie

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

通過http 302的方式來跨域種cookie

在用戶訪問我們的域名之后,默認在訪問域名下種下一個記錄性的cookie,減小我們的域名種Cookie失敗的概率

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

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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/82078.html

相關文章

  • 坑記:Uncaught RangeError: Maximum call stack size e

    摘要:今天遇到了一個錯誤,翻譯一下就是堆棧溢出,很好奇就是一個簡單請求怎么會報這個錯誤,研究了一下,發現犯了一個很低級的錯誤,的參數錯誤了是未定義的變量,值為空,然后導致了這個問題,但是為什么,暫時還沒有搞明白,如果哪位對源代碼比較熟悉,知道是怎 今天遇到了一個錯誤, showImg(https://segmentfault.com/img/bVHYYa?w=1424&h=233);翻譯一下...

    import. 評論0 收藏0
  • 支付開發坑記之微信支付

    摘要:前者集成在中,后者主要是為微信用戶提供了另一種支付方式需要在微信的內置瀏覽器中打開頁面,再調起微信支付。步驟商戶后臺收到用戶支付單,調用微信支付統一下單接口。拿到所有參數后,就可以在頁面中發起微信支付的請求了。 微信支付,支持的支付方式比較多:有掃碼支付,刷卡支付,APP支付和公眾號支付。其中,APP和網站上最常用的就是APP支付和公眾號支付。前者集成在APP中,后者主要是為微信用戶提...

    zhunjiee 評論0 收藏0
  • 支付開發坑記之支付寶

    摘要:原文地址支付支付步驟為獲取支付寶的配置信息。將得到的數據請求支付寶客戶端進行支付。端將拼接好的字符串拿去請求支付寶客戶端即可調起支付寶進行支付。向支付寶申請新訂單,獲取支付。成功請求回來后,就可以向支付寶發出一次支付請求。 支付寶在所有支付方式中最好開發的了,因為文檔比較清晰,而且開發起來也比較簡單。因此,支付寶的坑是相對較少的。原文地址 APP支付 APP支付步驟為: 獲取支付寶的...

    chanjarster 評論0 收藏0
  • React和React-native踩坑記

    摘要:坑請求跨域問題使用時,其中的已經默默幫你做了很多事,都幫你配置好了所以你發現你找不到相關的配置文件。放到服務器上仍然是空白的無法訪問。原來是因為路徑問題,簡單配置一下即可。上文提到過已經幫我們做好了很多事,方便在此,麻煩也在此。 react坑: 1、fetch請求cookie跨域問題使用creat-react-app時,其中的react-script已經默默幫你做了很多事,都幫你配置好...

    yck 評論0 收藏0

發表評論

0條評論

Lyux

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<