在 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(在页面主机页面请求个人信息之前有效)

在 html 文件中设置默认浏览器的代码

如何在 iframe 的“srcdoc”属性中设置 HTML 代码?

在java代码中设置margin

如何在 PyCharm 中设置 Python 代码模板

Angular2 使用 *ngif 在 html 代码中设置类名