java cookie p3p_P3P解决cookie存取的跨域问题
最近在做一個流量統計的東西的時候,偶然發現IE在對iframe里面的頁面寫Cookie的時候有一些安全限制,導致讀取Cookie不成功,找了好長時間的解決辦法,重要找到如下的辦法:
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直接在頭部加了頭部申明,測試有效。
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")
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的java cookie p3p_P3P解决cookie存取的跨域问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 圆的交点_java求两个圆相交
- 下一篇: java在图片下方写文字_Java画图给