IE裏Iframe的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:
<%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")

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章