11個網站安全防護的 http Header 設定
這篇文章主要介紹 11個網站安全防護的 http Header
只要透過網站的設定,安全設定值加入到 http header 中,不需大幅度的修改程式,
就可以讓網站與使用者瀏覽器之間有更多的安全防護,因此這個方法是比較簡便可以達成。
缺點就是這些 Http Header 在比較舊版本的瀏覽器有些是不支援的。
http Header | 用途 |
HSTS | 強制將網站與瀏覽器間的傳輸轉為 HTTPS例如:這個例子,強制 HTTPS轉換,有效期間為一年
Strict-Transport-Security: max-age=31536000 缺點是IE12之後才有支援。 |
X-Frame-Options | 主要用來防止 “Clickjacking” 的攻擊。駭客可能巧妙的假照一個遊戲網站,讓使用者點擊輸入相關資訊,但是該遊戲網站的背後卻是真實的銀行網站。透過 UI 多層重疊的方式,誘導使用者誤以為是遊戲網站。
範例: Content-Security-Policy: frame-ancestors 'none' |
Microsoft XSS Filter | Microsoft IE8 中提供的防護。可以避免惡意的 XSS JavaScript 程式碼的執行範例:X-XSS-Protection: 0 |
X-Content-Type-
Options |
主要避免讀取未知或是假造的 MIME 資料類型。範例:X-Content-Type-Options: nosniff
IE 不會任意執行 CSS 除非MIME 型態為text/css
|
CSP
|
為了避免 XSS attack 我們做許多防護措施。相對的,針對白名單,允許執行的 JavaScript ,就可以透過CSP來設定。
例如這個範例,允許 self (目前網頁)與 apis.google.com的 JavaScript 執行。
|
HttpOnly | 我們都知道 cookie 可能存放登入之後一些 session 相關的資訊。因此,HttpOnly 可以避免 cookie被惡性JavaScript 讀取。
範例 Set-Cookie: <name>=<value>[; <Max-Age>=<age>] [; expires=<date>][; domain=<domain_name>] [; path=<some_path>][; secure][; HttpOnly] |
Secure Cookie | 針對 cookie在網路上的傳輸,Secure Cookie 限定僅有在 HTTPS 的情況下才會傳輸Cookie 資料。如果是 HTTP 的情況下,Cookie 就不會被傳送。 |
Cache Control | 快取的設定。考量在於有些敏感性的資料,我們希望快曲的時間不要過長,並且有一定 timeout與 expire的機制。例如 apache 網站的設定。
|
Access Control Allow Origin | 定義跨 domain 執行 JavaScript 的方式。 |
Cross-domain policy
|
當要存取的資料(Adobe Flash Player) 需要跨 domain 的時候,就用這個方式定義。 |
Content-type | 主要用在定義最終瀏覽器如何呈現的字元集。 範例Character encodings
|
11 個 Http Header 技術參考資料
1) HTTP Strict Transport Security (HSTS)
5) CSP – Content Security Policy
9) Access Control Allow Origin
11) Content-Type