php利用P3P頭實現跨網域設定cookie

來源:互聯網
上載者:User

在開發中,我們碰到的跨域主要還是糾結在IE,頁面中的IFRAME或者FRAME或者JS跨域的時候,IE有安全性原則限制頁面不帶cookie,但是如果我們加上P3P,就沒有這策略的限制。這也是P3P來突破跨域的可行前提,其實在firefox chorme類瀏覽器裡面是沒有這個限制的。

首先我們瞭解一下P3P是什嗎?

P3P(Platform for Privacy Preferences)是W3C公布的一項隱私保護推薦標準,以為使用者提供隱私保護。

P3P標準的構想是:Web 網站的隱私權原則應該告之訪問者該網站所收集的資訊類型、資訊將提供給哪些人、資訊將被保留多少時間及其使用資訊的方式,如網站應做諸如 “本網站將監測您所訪問的頁面以提高網站的使用率”或“本網站將儘可能為您提供更合適的廣告”等申明。訪問支援P3P網站的使用者有權查看網站隱私報告,然 後決定是否接受cookie 或是否使用該網站。

以下為php利用P3P頭實現跨網域設定cookie的執行個體

http://www.a.com/a_setcookie.php 檔案內容:

<?php setcookie("Alixixi", $_GET['id'], time()+3600, "/", ".a.com"); ?>

http://www.a.com/a_getcookie.php 檔案內容:

<?php var_dump($_COOKIE); ?>

http://www.b.com/b_setcookie.php 檔案內容:

<script src="http://www.a.com/a_setcookie.php?id=www.b.com"></script>

通過瀏覽器訪問:

http://www.b.com/b_setcookie.php

http://www.a.com/a_getcookie.php

訪問1 b.com域後,我們並沒有在a.com域發現設定上cookie值。

此時如果將http://www.a.com/a_setcookie.php檔案內容改為如下:

<?php 
header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');  
setcookie("Alixixi", $_GET['id'], time()+3600, "/", ".a.com"); 
?>

再次訪問:

http://www.b.com/b_setcookie.php

http://www.a.com/a_getcookie.php

在訪問b.com域後,設定了a.com域的cookie值。

從上面例子可以看出通過發送P3P頭資訊而實現的跨域(在Firefox不發送P3P也能跨域成功)。

以上代碼的關鍵區段在於也即PHP使用P3P協議的代碼:

header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');

您可能感興趣的文章

  • jquery操作cookie,jquery讀取cookie,jquery設定cookie,jquery刪除cookie
  • php利用filter函數驗證郵箱、url和ip地址的方法
  • js操作cookie,js讀取cookie,js設定cookie,js刪除cookie總結
  • php利用curl實現多線程的類,php curl多線程下載圖片
  • php利用正則過濾各種標籤,空格,分行符號的代碼
  • PHP 利用 Curl Functions 實現多線程抓取網頁和下載檔案
  • 在php中分別使用curl的post提交資料的方法和get擷取網頁資料的方法總結
  • PHP如何識別是電腦或手機訪問網站


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.