22
Cookie被阻止/未保存在Internet Explorer的IFRAME中
我有两个网站,假设它们是example.com和anotherexample.net。上anotherexample.net/page.html,我有一个IFRAME SRC="http://example.com/someform.asp"。该IFRAME显示供用户填写并提交给的表单http://example.com/process.asp。当我someform.asp在其自己的浏览器窗口中打开表单(“ ”)时,一切正常。但是,当我someform.asp在IE 6或IE 7中作为IFRAME 加载时,example.com的cookie不会保存。在Firefox中,不会出现此问题。 为了进行测试,我在http://newmoon.wz.cz/test/page.php上创建了类似的设置。 example.com使用基于Cookie的会话(对此我无能为力),因此如果没有Cookie,process.asp就无法执行。如何强制IE保存这些Cookie? 嗅探HTTP流量的结果:在GET /someform.asp响应上,存在一个有效的每会话Set-Cookie标头(例如Set-Cookie: ASPKSJIUIUGF=JKHJUHVGFYTTYFY),但是在POST /process.asp请求中,根本没有Cookie标头。 Edit3:某些AJAX +服务器端脚本显然可以避开该问题,但这看起来非常像个bug,此外,它还开辟了一套全新的安全漏洞。我不希望我的应用程序仅因为简单而就使用bug +安全漏洞的组合。 编辑:P3P策略是根本原因,下面有完整说明。