日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

实现cookie跨域共享的两种方式

發布時間:2023/12/20 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 实现cookie跨域共享的两种方式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 跨域概念
  • 為何限制跨域?
  • 如何安全跨域?(如何實現跨域主要參考這里)
  • 如何實現cookie跨域共享?
    • cookie的概念
    • cookie的特性
    • 跨多域共享cookie( a.com和b.com共享 )

跨域概念

在域a下通過 ajax 的方式訪問域b下的資源。

域相同滿足的條件:域名相同(子域名不同視為不同),端口號相同

為何限制跨域?

請了解跨站腳本攻擊(XSS)

如何安全跨域?(如何實現跨域主要參考這里)

在XMLHttpRequest v2標準下,提出了CORS(Cross Origin Resourse-Sharing)的模型,試圖提供安全方便的跨域讀寫資源。目前主流瀏覽器均支持CORS。(IE10+)

詳細參見:http://www.ruanyifeng.com/blog/2016/04/cors.html

如何實現cookie跨域共享?

cookie的概念

由于http請求的無狀態,需要在每次交互時通過cookie傳遞服務器在瀏覽器中存放的用戶信息進而標識用戶。

cookie的特性

  • 由服務器端設置
  • 包含key,value,domain,path,expireTime等信息(domain,path指定了在訪問哪些域的哪些路徑下會攜帶cookie信息)
  • 服務器端設置cookie時,domain只可以指定自身或者父域,比如sub.a.com只可以指定domain為:sub.a.com或者a.com,而不可以指定sub1.a.com或者subchild.sub.a.com
  • 在顯示指定了cookie域時,訪問自身域或者子域時,都會攜帶cookie,所以,很容易實現當前域及子域的cookie共享。
  • 跨多域共享cookie( a.com和b.com共享 )

    方式1:通過隱藏iframe的方式

    step1. 用戶在a.com登錄,登錄成功后設置cookiestep2. 登錄成功后,瀏覽器端通過腳本動態生成iframe,通過iframe請求a.com/setCookiestep3. a.com發出重定向請求(http://b.com?cookie1=1&cookie2=2)step4. b.com接受到上面的請求,并設置b.com下的cookie寫回瀏覽器step5. 完成

    方式2:通過setCookie的方式

    step1. 用戶在a.com登錄,登錄成功后設置cookiestep2. 登錄成功后,通過腳本讀取a.com下的cookie,然后通過ajax跨域請求http://b.com?cookie1=1&cookie2=2step3. b.com接受到上面的請求,并設置b.com下的cookie寫回瀏覽器step4. 完成

    方式2相較于方式1,存在無法訪問httponly類型的cookie的問題。

    通過共享了cookie的方式,在訪問b.com時,會攜帶對應域下的cookie信息,從而達到共享的目的。

    第二種方式需要服務器端配置跨域(并且開啟允許跨域發送cookie)。

    總結

    以上是生活随笔為你收集整理的实现cookie跨域共享的两种方式的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。