IE8中的"中等安全性"表示third-party cookies that save information that can be used to contact you without your explicit consent被阻止.
什么是最广泛的P3P标题意味着我们不收集此类信息,并且不会被IE阻止?
我想跳过P3P政策的讨厌细节,并设置标题意味着最少的法律义务.它的语义应该是:
we collect everything except information that can be used to contact you.
Run Code Online (Sandbox Code Playgroud)
...没有指明任何其他内容.
请注意,大多数P3P标头都包含在内 - 如果它们不存在,则不允许您为此目的使用该信息 - 因此我要查找的P3P标头应包含大量标志.
在一个我无法理解的问题上,我被困在这里大约24小时.
我工作的保险公司依赖于从多个网站请求报价数据,一些用于分析,一些用于向客户报价.我正在为我开发的软件创建一个类,以便为我们当前的提供商添加新的保险提供商.
我基本上发送一个POST请求与客户信息和我们的推荐.但是对于我的生活,我无法让它发挥作用.我已经完成了数百次而没有任何问题.
我监视了Fiddler中的标题,并完全复制了它们.网站似乎唯一设置的是4个cookie值.一个是xsrf(当你访问提交页面时自动设置,我能够从源代码中检索它,或者通过访问CookieContainer),另外两个似乎与会话相关但是是加密的.所以我做的是让我的软件访问页面,存储cookie,然后提交帖子请求.
我已经尝试在禁用JavaScript的情况下手动提交表单.它有效.所以我可以假设没有使用JavaScript设置变量或cookie.
我无法理解的是为什么表格没有提交.
我唯一能想到的是cookie中的会话数据是加密的,并且存储了浏览器提供的一些值.但是没有JavaScript,浏览器可以提供什么样的价值,而我的软件不是?
我已经设置了所有常用的用户代理等.正如我所说,我已经完成了数百次,并且从未遇到过像这样的问题.
我还使用Fiddler来获取cookie信息,并将其直接放入软件中(使用与用户代理设置在软件上相同的浏览器),这在理论上应该可行,但事实并非如此.
我已将POST请求与来自浏览器的POST请求进行了比较,并且它们都是相同的.唯一不同的是会话cookie值,它们是加密的.
从Web服务器返回没有错误.响应代码为200.唯一的区别是当报价成功提交时,页面将包含"报价成功"文本.这是我无法用软件实现的.
我打电话给保险提供者,因为他们不管理他们的网站而无法提供帮助.他们没有API,但只要我们提供推荐ID,就允许我们公司通过软件提出请求.
关于可能会发生什么的任何想法?
我记录的是使用C#和HTTPClient.我不确定这是否相关.
编辑:
我注意到的一件事是,在对包含引用表单的页面的GET请求 - 使用浏览器 - 我注意到从服务器返回以下标头:
P3P: CP="CAO PSA OUR"
Run Code Online (Sandbox Code Playgroud)
此外,当在浏览器中成功发送POST请求时,它也会返回此标头.
但是,当我用软件发出GET请求时,我注意到服务器响应了P3P标头,但是POST请求却没有.这可能是相关/重要的吗?
我在这里阅读了几个相关的帖子,但似乎无法使我的脚本按预期工作.
我有一个用户登录的登录页面.如果密码匹配,脚本会将两个值写入$_SESSION变量:['loggedin']='yes'和['loginname']="username".
成功登录后,用户将转到另一个包含2个iframe的页面.
一个iframe使用外部内容,不需要身份验证(从页面中删除此iframe不会改变任何内容).
另一个iframe使用来自同一域的动态生成的内容,并检查会话变量是否仍然存在.
其中一个函数刷新动态生成的iframe的内容.
完成此操作后,会话变量将丢失.事实上,会话本身不再存在.
我session_start();在与此脚本相关的每个页面上都有.
任何帮助将不胜感激.
我不确定我想把它放在我的Asp.net MVC网站上:
HttpContext.Current.Response.AppendHeader("P3P", "CP=\\\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\\\"");
Run Code Online (Sandbox Code Playgroud)
我把它放在:
public static void RegisterRoutes(RouteCollection routes)
{
HttpContext.Current.Response.AppendHeader("P3P", "CP=\\\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\\\"");
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Account", action = "Logon", id = UrlParameter.Optional }
);
}
Run Code Online (Sandbox Code Playgroud)
但我回来了
在这种情况下无法获得响应.
谁知道我想把它放在哪里?
c# ×2
asp.net-mvc ×1
automation ×1
bots ×1
http ×1
http-headers ×1
iframe ×1
p3p ×1
php ×1
razor ×1
session ×1