最佳答案
example.com
和anotherexample.net
。
在anotherexample.net/page.html
上,我有一个IFRAME SRC="http://example.com/someform.asp"
。该IFRAME显示一个表单供用户填写并提交给http://example.com/process.asp
。当我在它自己的浏览器窗口中打开表单(“someform.asp
”)时,一切正常。
但是,当我在ie6或ie7中加载someform.asp
作为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,而且它打开了一组全新的安全漏洞。我不希望我的应用程序使用漏洞+安全漏洞的组合只是因为它很容易。
编辑:P3P政策是根本原因,完整解释如下。