我已经研究了很多这个主题。但是如果可以在纯 HTML 中设置 P3P 标签,我没有得到一件事?就在第一个标签之前。
我试图让 iFrame 登录解决方案在 IE 中工作。
我刚刚在 PHP、ASP.NET 等中找到了代码示例,但不是在普通的 HTLM 中,如果可能的话。
我已经研究了很多这个主题。但是如果可以在纯 HTML 中设置 P3P 标签,我没有得到一件事?就在第一个标签之前。
我试图让 iFrame 登录解决方案在 IE 中工作。
我刚刚在 PHP、ASP.NET 等中找到了代码示例,但不是在普通的 HTLM 中,如果可能的话。
我最近在尝试从 AWS S3 提供静态 HTML 时遇到了同样的问题。
不幸的是,如果不发送服务器端响应标头,就无法设置紧凑策略。
这意味着您不能对静态提供的 HTML 内容设置精简策略。
P3P 部署文档的第 2.4.2 节明确提到了这一点(强调我的):
站点服务于紧凑型政策的机制只有一种;它们作为 HTTP 响应标头发送。因此,如果站点不能或不愿意添加 HTTP 响应标头,则不能使用紧凑策略。
具有 http-equiv 属性的 HTML 元素 META 有时用于模拟将 HTTP 标头添加到 HTML 内容的效果。... http-equiv 机制不应用于发送 P3P 紧凑策略标头,因为在处理响应中的 cookie 之前,客户端可能无法使用此信息。
<meta http-equiv='p3p' content='CP="..."'/>
and<link rel="P3Pv1" href="...">
元素也不能设置 Compact Policy - 它必须是响应标头。
底线是这个:
你能发送p3p
响应头吗?
是:添加具有适当策略的标题,您就完成了。
否:您不走运,无法制定契约政策。
标p3p
头被认为是用户定义的键,因此只能添加为x-amz-meta-p3p
.
由于x-amz-meta-p3p
!=p3p
浏览器不会接受它作为正确的标题。
因此,您无法对 AWS S3 内容设置精简策略。