我可以使用它,但是解决方案有点复杂,请耐心等待。
发生了什么
实际上,Internet Explorer对IFRAME页面(IE称为“第三方”内容)的信任度较低。如果IFRAME中的页面没有隐私政策,则它的cookie被阻止(由状态栏中的眼睛图标指示,当您单击它时,它会显示阻止的URL列表)。
(来源:piskvor.org)
在这种情况下,当Cookie被阻止时,不会发送会话标识符,并且目标脚本会引发“找不到会话”错误。
(我尝试将会话标识符设置到表单中并从POST变量加载它。这本来可以用,但是出于政治原因,我不能这样做。)
可以使IFRAME中的页面更受信任:如果内部页面发送具有IE可接受的隐私策略的P3P标头,则将接受cookie。
如何解决
建立P3P政策
W3C教程是一个很好的起点。我已经仔细阅读了它,下载了IBM Privacy Policy Editor,然后在其中创建了隐私策略的表示形式,并给它起了引用的名称(此处是policy1
)。
注意:在这一点上,您实际上需要确定您的站点是否具有隐私策略,如果没有,请创建它-是否收集用户数据,什么样的数据,如何处理,有权访问它,等等。您需要找到这些信息并加以考虑。只是将几个标签拍在一起不会削减它。此步骤不能仅在软件中完成,而且可能具有很高的政治意义(例如“我们应该出售点击统计信息吗?”)。
(例如“该站点由ACME Ltd.运营,它使用匿名的每会话标识符进行操作,仅在明确允许的情况下收集用户数据,并且仅出于以下目的,仅在必要时存储数据,只有我们公司可以访问它,等等,等等。)。
(使用此工具进行编辑时,可以查看策略中的错误/遗漏。“ HTML策略”标签也非常有用:它的底部有一个“策略评估”-快速检查是否会阻止该策略通过IE的默认设置)
编辑器将导出到.p3p文件,该文件是上述策略的XML表示形式。同样,它可以导出此策略的“精简版本”。
链接到政策
然后需要一个策略参考文件(http://example.com/w3c/p3p.xml
)(网站使用的隐私策略索引):
<META>
<POLICY-REFERENCES>
<POLICY-REF about="/w3c/example-com.p3p#policy1">
<INCLUDE>/</INCLUDE>
<COOKIE-INCLUDE/>
</POLICY-REF>
</POLICY-REFERENCES>
</META>
该<INCLUDE>
节目将使用此策略(在我的情况,整个网站)所有的URI。我从编辑器导出的策略文件已上传到http://example.com/w3c/example-com.p3p
发送带有响应的紧凑头
我已将example.com上的网络服务器设置为发送带有响应的紧凑标头,如下所示:
HTTP/1.1 200 OK
P3P: policyref="/w3c/p3p.xml", CP="IDC DSP COR IVAi IVDi OUR TST"
// ... other headers and content
policyref
是策略引用文件(进而引用隐私策略)的相对URI,CP
是紧凑型策略表示形式。请注意,示例中的P3P标头组合可能不适用于您的特定网站。您的P3P标头必须真实地代表您自己的隐私政策!
利润!
在此配置中,不会出现邪恶之眼,即使在IFRAME中也会保存cookie,并且该应用程序可以工作。
编辑:不可以做什么,除非您喜欢为诉讼辩护
一些人建议“将一些标签拍入您的P3P标头,直到邪恶之眼放弃”。
标签不仅是一堆东西,还具有现实意义,它们的使用赋予您现实世界的责任!
例如,假装从不收集用户数据可能会使浏览器满意,但如果您实际上收集了用户数据,则P3P与现实冲突。简单明了,您故意向用户说谎,这在某些国家/地区可能是犯罪行为。如“入狱,不要收200美元”。
一些示例(有关完整的标签集,请参见p3pwriter):
- NOI:“网站未收集已标识的数据。” (一旦进行了任何自定义,登录或任何数据收集(***** Analytics(分析),有人吗?),您必须在您的P3P中进行确认)
- STP:保留信息以达到指定目的。这要求信息尽早被丢弃。站点必须具有建立销毁时间表的保留策略。保留策略必须包含在网站的可读性隐私策略中或与之链接。”(因此,如果您发送
STP
但没有保留策略,则可能是欺诈行为。这有多酷?根本没有。)
我不是律师,但我不愿意去法院看看P3P标头是否确实具有法律约束力,或者您是否可以向用户承诺任何东西而实际上却不愿兑现您的承诺。