當在 http://aa.example.org/index.html
使用iframe載入另一個網域的登入頁面 http://bb.example.com/login.php
會發現在IE無法登入,因為IE預設的安全性,不允許在iframe存取跨網域的cookie,
所以cookie和session都一併失效了。
http://aa.example.org/index.html內容如下
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css"> #loginframe { height: 115px; width: 300px; } </style> </head> <body> <iframe id="loginframe" src="http://bb.example.com/login.php" frameborder="0" scrolling="no" allowtransparency="true"></iframe> </body> </html>
解決方法:
在iframe跨網域載入的那一頁加入header值
P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
PHP範例如下(在 http://bb.example.com/login.php 最上面加入以下內容)
<?php header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"'); ?>
沒有留言:
張貼留言