### 其他首部字段 ###
HTTP首部字段是可以自行扩展的。所以在Web服务器和浏览器的应用上,会出现各种非标准的首部字段。
接下来,我们就一些最为常用的首部字段进行说明。
# X-Frame-Options #
ex : X-Frame-Options: DENY
首部字段X-Frame-Options属于HTTP响应首部,用于控制网站内容在其他Web网站的Frame标签内的显示问题。
其主要目的是为了防止点击劫持(clickjacking)攻击。
首部字段 X-Frame-Options 有以下两个可指定的字段值。
1、DENY :拒绝
2、SAMEORIGIN :仅同源域名下的页面(Top-level-browsing-context)匹配时许可。(比如,
当指定http://hackr.jp/sample.html页面为 SAMEORIGIN时,那么 hackr.jp上所有页面的frame都被允许可加载该页面,而 example.com等其他域名的页面就不行了)
支持该首部字段的浏览器有:IE 8、Firefox、Chrome 、Safari
Opera等。现在主流的浏览器都已经支持。能在所有的 Web服务器端预先设定好 X-Frame-Options 字段值是最理想的状态
对 apache2.conf 的配置实例
<IfModule mod_headers.c>
Header append X-FRAME-OPTIONS "SAMEORIGIN"
</IfModule>
# X-XSS-Protection #
ex : X-XSS-Protection: 1
首部字段X-XSS-Protection属于HTTP响应首部,是针对跨站脚本攻击(XSS)的一种对策,
用于控制浏览器XSS防护机制的开关.
首部字段 X-XSS-Protection 可指定的字段值如下。
0 :将 XSS 过滤设置成无效状态
1 :将 XSS 过滤设置成有效状态
# DNT #
ex: DNT: 1
首部字段 DNT 属于 HTTP 请求首部,其中 DNT 是 Do Not Track 的简称,
意为拒绝个人信息被收集,是表示拒绝被精准广告追踪的一种方法。 首部字段 DNT 可指定的字段值如下:
0 :同意被追踪
1 :拒绝被追踪
由于首部字段DNT的功能具备有效性,所以Web服务器需要对 DNT做对应的支持。
# P3P #
ex: P3P: CP="CAO DSP LAW CURa ADMa DEVa TAIa PSAa PSDa IVAa IVDa OUR BUS IND UNI COM NAV INT"
首部字段P3P属于HTTP相应首部,通过利用 P3P(The Platform for Privacy Preferences ,在线隐私偏好平台)技术,
可以让 Web网站上的个人隐私变成一种仅供程序可理解的形以达到保护用户隐私的目的。
要进行P3P的设定,需按以下操作步骤进行。
步骤 1 :创建 P3P 隐私
步骤 2 :创建 P3P隐私对照文件后,保存命名在/w3c/p3p.xml
步骤 3 :从 P3P隐私中新建 Compact policies后,输出到 HTTP响应中
【小知识:协议中对 X- 前缀的废除:】
在 HTTP 等多种协议中,通过给非标准参数加上前缀 X- ,来区别于标准参数,并使那些非标准的参数作
为扩展变成可能。但是这种简单粗暴的做法有百害而无一益,因此在 “RFC 6648 - Deprecating the "X-"Prefix and Similar Constructs in Application Protocols” 中提议停止该做法。然而,对已经在使用中的 X- 前缀来说,不应该要求其变更。