实现cookie跨域共享的两种方式
生活随笔
收集整理的這篇文章主要介紹了
实现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的特性
跨多域共享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跨域共享的两种方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Process finished wit
- 下一篇: 如何防止uniswap/pancakes