posts - 110, comments - 101, trackbacks - 0, articles - 7
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          摘抄: Cookie跨域操作

          Posted on 2011-04-07 11:57 云云 閱讀(3641) 評論(2)  編輯  收藏
          正常的cookie只能在一個應用中共享,即一個cookie只能由創建它的應用獲得。
          1.可在同一應用服務器內共享方法:設置cookie.setPath("/");
          本機tomcat
          /webapp下面有兩個應用:cas和webapp_b,
          1)原來在cas下面設置的cookie,在webapp_b下面獲取不到,path默認是產生cookie的應用的路徑。
          2)若在cas下面設置cookie的時候,增加一條cookie.setPath("/");或者cookie.setPath("/webapp_b/");就可以在webapp_b下面獲取到cas設置的cookie了。
          3)此處的參數,是相對于應用服務器存放應用的文件夾的根目錄而言的(比如tomcat下面的webapp),因此cookie.setPath("/");之后,可以在webapp文件夾下的所有應用共享cookie,而cookie.setPath("/webapp_b/");是指cas應用設置的cookie只能在webapp_b應用下的獲得,即便是產生這個cookie的cas應用也不可以。
          4)設置cookie.setPath("/webapp_b/jsp")或者cookie.setPath("/webapp_b/jsp/")的時候,只有在webapp_b/jsp下面可以獲得cookie,在webapp_b下面但是在jsp文件夾外的都不能獲得cookie。
          5)設置cookie.setPath("/webapp_b");,是指在webapp_b下面才可以使用cookie,這樣就不可以在產生cookie的應用cas下面獲取cookie了
          6)有多條cookie.setPath("XXX");語句的時候,起作用的以最后一條為準。
          6)設置多個path的方法???



          2.跨域共享cookie的方法:設置P3P

          轉載如下:

          今天在w3網站上看到了一篇介紹p3p的文章(http:
          //www.w3.org/TR/P3P/),利用這個可以實現跨域訪問cookie,我也試驗一下。
                其實很簡單:試驗用了2個域名readlog.cn和diaor.com

                首先在readlog.cn下放置一個文件setcookie.php 內容:  

          PHP代碼
          <?php   
               header(
          'P3P: CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE GOV"');//p3p   
               setcookie("TestCookie","test",time()+3600,"/",".readlog.cn");//設置cookie   
          ?>  
               再放置一個readcookie.php 內容:

          PHP代碼
          <?php   
          echo $_COOKIE[
          "TestCookie"];   
          ?>  
          然后在diaor.com下放置setcookie.php ,內容:

          JavaScript代碼
          <script src="http://www.readlog.cn/setcookie.php"></script>  
          然后訪問http:
          //www.diaor.com/setcookie.php 抓取數據包可以發現,在readlog.cn域下生成了一個cookie ,名稱是TestCookie,值是test

          下面訪問http:
          //www.readlog.cn/readcookie.php 來驗證一下,可以發現,cookie確實設置成功了。

          有興趣可以去掉header(
          'P3P: CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE GOV"');這句,試一下就會發現cookie能設置,但是在readlog.cn讀不到這個cookie。

          評論

          # re: 摘抄: Cookie跨域操作  回復  更多評論   

          2016-01-27 17:18 by 23
          123

          # re: 摘抄: Cookie跨域操作  回復  更多評論   

          2016-01-27 17:19 by 23
          @23
          魏都大道

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 昌吉市| 青川县| 锡林郭勒盟| 客服| 察隅县| 余庆县| 嘉荫县| 英山县| 托克逊县| 板桥市| 新巴尔虎左旗| 巫山县| 河池市| 保山市| 万山特区| 板桥市| 新疆| 金昌市| 蕉岭县| 宜章县| 灌云县| 东平县| 许昌县| 新干县| 龙井市| 花莲县| 泌阳县| 稷山县| 清涧县| 茌平县| 泽普县| 张家界市| 漠河县| 府谷县| 大同县| 安义县| 鲁甸县| 太原市| 浙江省| 湖口县| 临高县|