用P3P header解決iframe跨域訪問cookie/session

來源:互聯網
上載者:User
       理論很簡單,而且模式也和大多請求返回狀態的SSO差不多.但是有幾個地方是要注意一下的.
1.頁面裡的COOKIE不能是瀏覽器進程的COOKIE(包括驗證票和不設定逾時時間的COOKIE),否則跨域會取不到.這點做跨域COOKIE的人比較少提到.不過實際上留意下幾家大學做的方案,有細微的提到他們的驗證模組裡的COOKIE是有設定逾時時間的.
2.當利用IFRAME時,記得要在相應的動態網頁的頁頭添加一下P3P的資訊,否則IE會自覺的把IFRAME框裡的COOKIE給阻止掉,產生問題.本身不儲存自然就取不到了.這個其實是FRAMESET和COOKIE的問題,用FRAME或者IFRAME都會遇到.
3.測試時輸出TRACE,會減少很多測試的工作量.
只需要設定 P3P HTTP Header,在隱含 iframe 裡面跨網域設定 cookie 就可以成功。他們所用的內容是:
P3P: CP='CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR'
ASP直接在頭部加了頭部申明,測試有效。
<%Response.AddHeader "P3P", "CP=CAO PSA OUR"%>
php的話,我沒去試,應該是如下寫法:
header('P3P: CP=CAO PSA OUR');
ASP.NET的話
通過在代碼上加Response.AddHeader("P3P", "CP=CAO PSA OUR")或者在Window服務中將ASP.NET State Service 啟動。
JSP:
response.setHeader("P3P","CP=CAO PSA OUR")

聯繫我們

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