網站header設定


最近被客戶要求所以做了header的調整就整理一下紀錄,伺服器是apache,所做的調整則是在.htaccess檔案中。

用來測試header設定的網站
https://securityheaders.com/

方法

前面幾個是多數網站掃描會被當作弱點的部分,有需要就修改

Strict-Transport-Security
連線控制,基本上直接加上就好

<IfModule mod_headers.c>
	Header always set Strict-Transport-Security "max-age=31536001; includeSubDomains"
</IfModule>

Content-Security-Policy
設定外連網站的權限,這部分要檢查有使用到什麼服務,會比較麻煩一點,加上有在使用的網址並用空白隔開

<IfModule mod_headers.c>
	Header always set Content-Security-Policy: "default-src 'self' 'unsafe-inline' 'unsafe-eval' data:  code.jquery.com/  *.googletagmanager.com/  *.google-analytics.com/  *.google.com/  *.google.com.tw/  stats.g.doubleclick.net/  *.youtube.com/  *.googleapis.com/  *.gstatic.com/  platform.welcometw.com/  www.travel.taipei/  www.taiwan.net.tw/  scontent.frmq2-1.fna.fbcdn.net/  www.miaolitravel.net/  www.hccc.gov.tw/ ;script-src 'self' 'unsafe-inline' 'unsafe-eval'  code.jquery.com/  *.googletagmanager.com/  *.google-analytics.com/  *.google.com/  *.google.com.tw/  stats.g.doubleclick.net/  *.youtube.com/  *.googleapis.com/  *.gstatic.com/  platform.welcometw.com/  www.travel.taipei/  www.taiwan.net.tw/  scontent.frmq2-1.fna.fbcdn.net/  www.miaolitravel.net/  www.hccc.gov.tw/ ;script-src-elem 'self' 'unsafe-inline' 'unsafe-eval'  code.jquery.com/  *.googletagmanager.com/  *.google-analytics.com/  *.google.com/  *.google.com.tw/  stats.g.doubleclick.net/  *.youtube.com/  *.googleapis.com/  *.gstatic.com/  platform.welcometw.com/  www.travel.taipei/  www.taiwan.net.tw/  scontent.frmq2-1.fna.fbcdn.net/  www.miaolitravel.net/  www.hccc.gov.tw/ ;frame-ancestors 'self';"
</IfModule>

X-Frame-Options
嵌入設定,需要根據需求改變,一般來說設為SAMEORIGIN可以滿足需求

<IfModule mod_headers.c>
	Header always append X-Frame-Options SAMEORIGIN
</IfModule>

以下還沒碰過被弱點掃描軟體視為弱點,設了會更好

X-Content-Type-Options
似乎可以強制以設定的mine執行檔案

<IfModule mod_headers.c>
	Header always set X-Content-Type-Options "nosniff"
</IfModule>

Permissions-Policy
可以設定網站權限,比如說不需要麥克風的話可以設定microphone=()來讓整個網站都不能使用
可設定的參數參考https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy#directives
範例

<IfModule mod_headers.c>
	Header always set Permissions-Policy "geolocation=(self \"https://*.youtube.com\" \"https://youtube.com\"),camera=(),microphone=()"
</IfModule>

Referrer-Policy
來源設定,不太懂這對安全有什麼幫助
參考參數https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy
多數預設值是strict-origin-when-cross-origin

<IfModule mod_headers.c>
	Header always set Referrer-Policy "strict-origin-when-cross-origin"
</IfModule>
Tags : apache 資訊安全