P3P Header解決Cookie跨域的問題

來源:互聯網
上載者:User

P3P

  P3P是一種被稱為個人隱私安全平臺項目(the Platform for Privary Preferences)的標準,能夠保護在線隱私權,使Internet衝浪者可以選擇在瀏覽網頁時,是否被第三方收集並利用自己的個人資訊。如果一個站點不遵守P3P標準的話,那麼有關它的Cookies將被自動拒絕,並且P3P還能夠自動識破多種Cookies的嵌入方式。P3P是由全球資訊聯盟網所開發的。

例子

  當頁面存在iframe時,想要獲取iframe架構裏面的cookie,就要在iframe相應的動態頁面裏面添加P3P Header資訊,否則在IE下獲取不到。因為IE有安全性原則,限制頁面不儲存第三方cookie(註:當前訪問頁面為第一方cookie,第三方cookie就是當前網頁以外的其他網頁的cookie)。

複製代碼 代碼如下:
<?php
//http://www.a.com/a_setcookie.php 檔案內容:
setcookie("test", "testval", time()+3600, "/", ".a.com");
//http://www.a.com/a_getcookie.php 檔案內容:
var_dump($_COOKIE);
/*-----------------------------------------------------------------------
http://www.b.com/b_setcookie.php 檔案內容:
<iframe src="http://www.a.com/a_setcookie.php?id=www.b.com"></iframe>
通過瀏覽器訪問: http://www.b.com/b_setcookie.php
http://www.a.com/a_getcookie.php在訪問 b.com域後,我們並沒有在 a.com域發現設定上cookie值。
將http://www.a.com/a_setcookie.php檔案內容改為如下:
--------------------------------------------------------------------------*/
header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');
setcookie("test","testval", time()+3600, "/", ".a.com");
//再次訪問:http://www.b.com/b_setcookie.php
//http://www.a.com/a_getcookie.php在訪問b.com域後,設定了a.com域的cookie值。

JS使用P3P協議
複製代碼 代碼如下:
xmlhttp.setRequestHeader( "P3P" , 'CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"' );

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.