在某些情況下,我們會需要讓 cookie 傳給第三方網站 (例如想讓使用者在二個自己的網站同時登入)。一般的作法是用 <img> 或 <iframe> 來將 cookie 資訊來傳給第三方網站。而這邊要提的是在這種情況下, 如何解決 IE (Internet Explorer) 在預設的情況下不接受 Third-Party cookie 的問題。
作法很簡單,只要宣告一個 P3P Header (P3P 是 Platform for Privacy Preferences Project 的簡稱) 就可以了。同時,要特別注意,這個 header 是要設在「第三方」的網站,也就是不是使用者正在瀏覽的網站,是 <img> 或 <iframe> 裡面引用、呼叫的網站。
底下是各種程式語言的宣告方式:
(上面的程式的「引號」有些問題,要自己改一下。)
Reference:
How to set third-party cookies with iframe?
作法很簡單,只要宣告一個 P3P Header (P3P 是 Platform for Privacy Preferences Project 的簡稱) 就可以了。同時,要特別注意,這個 header 是要設在「第三方」的網站,也就是不是使用者正在瀏覽的網站,是 <img> 或 <iframe> 裡面引用、呼叫的網站。
底下是各種程式語言的宣告方式:
PHP:
header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');
JSP:
response.setHeader(“P3P”,”CP=’IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT’”)
ASP.NET:
HttpContext.Current.Response.AddHeader("p3p", "CP=\""IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\""")
ColdFusion:
<cfheader name=”P3P” value=”CP=’IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT’” />
(上面的程式的「引號」有些問題,要自己改一下。)
Reference:
How to set third-party cookies with iframe?