相关疑难解决方法(0)

Cookie已阻止/未保存在Internet Explorer的IFRAME中

我有两个网站,让我们说他们是example.comanotherexample.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政策是根本原因,下面有完整的解释.

cookies internet-explorer privacy p3p

391
推荐指数
8
解决办法
22万
查看次数

iframe,跨域cookie,p3p策略和带有错误的safari:未提供所需的防伪令牌或无效

我不久前问了这个问题,发现IE阻止了iframe中的跨域cookie,除非你设置了p3p策略.到目前为止,p3p修复程序在ie中运行得非常好.但是,现在我们在safari中遇到了同样的错误.

我找到了一篇针对safari 的不同p3p政策的文章.我添加了此代码来设置p3p策略,但我仍然收到请求验证令牌错误.

public static void SetP3PCompactPolicy()
{
    HttpContext current = HttpContext.Current;

    if (current.Request.UserAgent.ToLower().IndexOf("safari") >= 0)
        HttpContext.Current.Response.AddHeader("p3p", "CP=\"IDC DSP COR CURa ADMa OUR IND PHY ONL COM STA\"");
    else
        HttpContext.Current.Response.AddHeader("p3p", "CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\"");
}
Run Code Online (Sandbox Code Playgroud)

我不确定这是什么意思,但它不适用于Safari(5).

此外,当我收到服务器错误时,所有信息都会在报告中发送给我,包括所有http标头.p3p标头永远不会出现在这些错误中.我不确定这是否是设计或是否是问题的指标.

cookies safari cross-domain p3p asp.net-mvc-2

12
推荐指数
1
解决办法
1万
查看次数

Internet Explorer 9中的iframe的P3P和PHP会话问题

我在iframe中有一个联系表单,它使用验证码,因此需要会话变量.除IE9外,它在每个浏览器中都能正常工作.为了使它在IE8中工作,我在php文档的开头添加了以下行:

header('P3P:CP="CAO IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"'); 
Run Code Online (Sandbox Code Playgroud)

但是,这似乎在IE9中不起作用.有任何想法吗?

php p3p internet-explorer-9

7
推荐指数
1
解决办法
6863
查看次数