1. 程式人生 > >關於Cookie跨域的問題

關於Cookie跨域的問題

Cookie是一個偉大的發明,它允許Web開發者保留他們的使用者的登入狀態。但是當你的站點有一個以上的域名時就會出現問題了。在Cookie規範上說,一個cookie只能用於一個域名,不能夠發給其它的域名。因此,如果在瀏覽器中對一個域名設定了一個cookie,這個cookie對於其它的域名將無效。如果你想讓你的使用者從你的站點中的其中一個進行登入,同時也可以在其它域名上進行登入,這可真是一個大難題。

跨二級域名

  我們知道cookie是可以跨二級域名來訪問,這個很好理解,例如你 www.test1.com 在的web應用程式建立了一個cookie,要想在bbs.test1.com這樣的二級域名對應的應用程式中訪問,就必須你在建立cookie的時候設定domain引數domain=test1.com。 以asp.net為例 程式碼如下:

1 2 3 4 HttpCookie cookie = new HttpCookie("name", "www.Admin10000.com"); cookie.Domain = "test1.com"; cookie.Path = "/"; Response.Cookies.Add(cookie);

跨頂級域名

  如果我不是二級域名而是完全在不同頂級域名中,例如 www.test1.com 所在的web應用程式建立了一個cookie,想要在 www.test2.com 或其二級域名的應用程式中訪問,改怎麼辦呢?我們知道靠常規反的方法是訪問不了的,關鍵我們就是看看有沒有方法可以訪問。事實是Cookie可以在一定條件下跨域,而不是隨心所欲的實現跨域。

  我們來做個測試,看看兩個站點 www.test1.com 和 www.test2.com 如何實現cookie跨域訪問。 按照常規我們需要有2個頂級域名,並且有DNS伺服器才能夠配置域名,否則我們是無法驗證的,但是這裡我們也沒有必要那麼麻煩,我們可以通過修改hosts檔案來模擬。在 c:\windows\system32\drivers\etc 中有 hosts檔案,在末尾新增上

127.0.0.1    www.test1.com
127.0.0.1    www.test2.com 

兩行,就可以將本機用上面的域名訪問本機迴環地址了。我們只需要在IIS上部署一套程式,ip為本機迴環地址,用兩個域名分別訪問就可以了。

  我們新建三個頁面,分別是 Default.aspx、SSO.ashx、GetCookie.aspx。

  其中Default.aspx是 www.test1.com 的頁面,訪問的地址是 http://www.test1.com/Default.aspx。看一下前臺程式碼,它沒有任何後臺程式碼

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Admin10000.Web.Default" %> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <script type="text/javascript"> var _frm = document.createElement("iframe"); _frm.style.display = "none"; document.body.appendChild(_frm);  

相關推薦

解決前後端分離後的Cookie問題

-o equals eth success ati $.ajax 設置 ons post 一. 前端Ajax關鍵配置 $.ajax({ type: "post", url: xxx, data: xxx, contentType: ‘applicat

vue resource 攜帶cookie請求 vue cookie

sta save gpo cred mark log xxx true func vue resource 攜帶cookie請求 vue cookie 跨域 1、依賴VueResource 確保已安裝vue-resource到項目中,找到當前項目,命令行輸入: npm in

cookie問題的思路以及echo的解決方案

urn ctu coo json 出現 stack white 思路 規則 問題起因 前後端分離,前端要訪問後端資源,而且需要攜帶cookie信息,這時碰到了跨域問題。一開始以為設置為允許跨域allow_origins為即可。可是瀏覽器還是攔截的請求,於是查看跨域規則,原來

cookie 的問題

weight 註意 摘錄 ref 二級域名 secure style bool cookie 今天研究一天發現cookie無法設置除當前域名或者其父域名之外的其他domain. 這個是瀏覽器出於對cookie的保護造成的,也就是cookie無法跨域設置。 對於子域名也有如下

WebView的Cookie問題

案例 前幾天遇到這樣一個問題:前端開發了一個h5頁面,在webView中載入時,發現獲取不到 設定的cookie資訊.原以為是沒設定好,將支援的一級域名梳理了一遍,迴圈設定;其次客戶端自己測試,通過getCookie(url)能正常獲取,但是抓包發現頁面網路請求的cookie中並沒有資料,一

本地啟動專案後cookie獲取不到的處理方式

問題現象   最近在做Vue專案,很多時候除錯程式碼需要本地訪問localhost來進行,然而請求介面是通過代理實現的,那麼就會存在一種情況是:代理域名下種植的cookie,在localhost域名下訪問不到。儘管在控制檯可以看到,但是執行document.cookie,是拿不到對應cookie的。

單點登入的cookie設定

單點登入的cookie跨域設定 單點登入原理 當公司有好多系統存在並執行時候,使用者每個系統使用之前都需要登入認證,操作起來就比較重複,使用者體驗感不好,然後就衍生出來單點登入.如下圖所示: 單點登入: 英文名(Single Sign On), 公司內部所有應用系統共享一個身份認證

cookie,二級域名之間如何共享

概述 同域名的二級域名實現共享,比如:www.domain.com下登入後,在其它的二級域名,my.domain.com、bj.domain.com、sh.domain.com等二級域名都能共享

ajax/資料的拼接/定向跳回/base加密/cookie/

本人小白,下面專案中有很多自己踩過的坑,話不多說,上個公司專案的程式碼,裡面有很多可以用到的,希望幫助到你,不喜勿噴......小白就是小白.......... 總結:如果標籤屬性是贏定義好的,就按照正常html來寫,如果是根據data來動態獲取定義的,則需要""'看似三個引號來包裹,中間的

關於Cookie的問題

Cookie是一個偉大的發明,它允許Web開發者保留他們的使用者的登入狀態。但是當你的站點有一個以上的域名時就會出現問題了。在Cookie規範上說,一個cookie只能用於一個域名,不能夠發給其它的域名。因此,如果在瀏覽器中對一個域名設定了一個cookie,這個cookie對於其它的域名將無效。如果你

前端cookie共享

cookie跨域共享 封裝一個公共操作cookie的方法 const common = {}; common.getCookie = function (name) { var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|

springboot-整合Vue,cookie,session共享demo

springboot-整合Vue,跨域,cookie跨域,session共享demo 文章目錄 springboot-整合Vue,跨域,cookie跨域,session共享demo 問題及概念: 1.跨域

java cookie操作

正常的cookie只能在一個應用中共享,即一個cookie只能由建立它的應用獲得。 1.可在同一應用伺服器內共享方法:設定cookie.setPath("/");     本機tomcat/webapp下面有兩個應用:cas和webapp_b,     1)原來在c

ajax和flask附cookie

跨域是個深刻的話題 我現在的專案在做js的ajax和flask之間的跨域工作,其中涉及到了一個問就是使用者資訊的儲存 為了方便我打算把常用的資訊儲存在cookie中,一方面是前端顯示方便,另一方面是給flask發api請求的時候可以直接將cookie

asp.net cookie訪問設定

/// <summary> /// 建立登入cookie 跨域 /// </summary> private void CreateAdminCookie(int userId,string tUserName)

http Cookie操作

最近客戶端開發新功能時,由於服務端跨域,導致cookie不能自動傳遞,引發一些列問題,如B服務端無法判斷使用者是否已經登陸,在研究了org.apache.http.client.cookie原始碼後,分享下心得,網上這方面的帖子比較少,只是本人的一些小看法,有啥不懂的大家可

java 操作 Cookie (同頂級域名)

需求:2個二級欄目需要用同一個是否扥登陸的Cookie 實現: 登陸方法驗證通過後: Cookie loginCookie = new Cookie("ccUserId",userMap.get("user_id").toString());              

cookie,實現單點登入

Cookie 跨域,實現單點登入 Table title 最近在做一個單點登入的系統整合專案,之前我們使用控制元件實現單點登入(以後可以介紹一下)。但現在為了滿足客戶需求,在不使用控制元件情況下實現單點登入,先來介紹一下單點登入。 單點登入:多個不同系統整合

從淘寶架構之cookie,看網際網路技術發展方向

       最近在發現使用Taobao的時候的一個小細節,於是便萌發起了寫這篇文章。  當我們在 www.taobao.com 中進行登入之後,然後直接切換到 www.tmall.com 域名下,發現www.tmall.com首頁的最頂部馬上顯示成了: 您好, and

cookie 問題

SSO COOLIE 跨域問題http://jhjguxin.sinaapp.com/2012/09/13/ie-iframe-p3p-cookies-oh-my/[quote]IE, IFRAME, P3P, COOKIES,測試新浪微遊戲介面時,發現一個問題:當使用IE瀏