### 其他首部字段 ###
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- 前綴來說,不應該要求其變更。