在 HTML 中设置 P3P 代码
Posted
技术标签:
【中文标题】在 HTML 中设置 P3P 代码【英文标题】:Set P3P code in HTML 【发布时间】:2014-08-16 02:33:22 【问题描述】:我已经研究了很多这个主题。但是如果可以在纯 html 中设置 P3P 标签,我没有得到一件事?就在第一个标签之前。
我正在尝试让 iFrame 登录解决方案在 IE 中工作。
我刚刚在 php、ASP.NET 等中找到了代码示例,但在普通 HTLM 中没有找到,如果可能的话。
【问题讨论】:
P3P and PHP session problem with iframes in Internet Explorer 9的可能重复 【参考方案1】:我最近在尝试从 AWS S3 提供静态 HTML 时遇到了同样的问题。
很遗憾,不可能在不发送服务器端响应标头的情况下设置紧凑策略。
这意味着您不能对静态提供的 HTML 内容设置精简策略。
Section 2.4.2 of the P3P deployment document 明确提到了这一点(强调我的):
网站只有一种机制可以服务于紧凑型策略;它们作为 HTTP 响应标头发送。因此,如果网站无法或不愿意添加 HTTP 响应标头,则无法使用紧凑策略。
具有 http-equiv 属性的 HTML 元素 META 有时用于模拟将 HTTP 标头添加到 HTML 内容的效果。 ... http-equiv 机制不应用于发送 P3P 紧凑策略标头,因为在客户端处理响应中的 cookie 之前,客户端可能无法使用此信息。
<meta http-equiv='p3p' content='CP="..."'/>
和 <link rel="P3Pv1" href="...">
元素也不能设置 Compact Policy - 它必须是响应标头。
底线是这样的:
您可以发送p3p
响应标头吗?
是:添加带有适当策略的标头,您就完成了。
否:您运气不好,无法制定契约政策。
对于 Amazon S3:
p3p
标头被视为用户定义的键,因此只能添加为 x-amz-meta-p3p
。
由于x-amz-meta-p3p
!= p3p
浏览器不会接受它作为正确的标头。
因此您无法对 AWS S3 内容设置精简策略。
【讨论】:
以上是关于在 HTML 中设置 P3P 代码的主要内容,如果未能解决你的问题,请参考以下文章
IE、P3P、IFrame 和阻止的 cookie(在页面主机页面请求个人信息之前有效)