手動增加 SSL Security Headers

2020-12-11

手動增加 SSL Security Headers

最近為網誌更新了 WordPress 5.6,檢查網站健康,發現了 SSL警告:Not all recommended security headers are installed。其實只要在 .htaccess 加幾句設定就可以解決。

目錄

WordPress 網站健康 SSL 警告

如果你檢查網站健康時,遇上了以下的警告,依本文教學做便可解決。

Not all recommended security headers are installed

Your .htaccess file does not contain all recommended security headers.

  • HTTP Strict Transport Security
  • Content Security Policy: Upgrade Insecure Requests
  • X-XSS protection
  • X-Content Type Options
  • Referrer-Policy
  • Expect-CT

這些 headers 的作用如下:

  • HSTS (HTTP Strict Transport Security) – 在網域上設置此 header 後,瀏覽器將隨後通過 HTTPS 向您的網站發出所有請求。
  • CSP: Upgrade Insecure Requests – 指示客戶端將該站點的所有不安全網址(通過HTTP提供的URL)視為已被替換為安全網址(通過HTTPS提供的URL)。這指令適用於需要重寫大量不安全的舊網址的網站。
  • X-XSS protection – 如果檢測到跨網站指令碼 cross-site scripting(XSS)攻擊,將阻止頁面加載。
  • X-Content Type Options – 強制瀏覽器不要「猜測」傳遞了哪種數據。 如果檔案類型是 .doc,則瀏覽器應獲取一個 .doc 文件,而不是其他文件(如 .exe 應用程式)。
  • Referrer-Policy – 僅在使用相同協議時設置引薦來源網址,而在降級時則不設置引薦來源網址(HTTPS-> HTTP)。
  • Expect-CT (Certificate Transparency) – SSL 證書頒發機構需要單獨記錄頒發的證書,以防止欺詐。

修改 .htaccess

如果你能用 FTP 修改檔案,就在根目錄下找出 .htaccess,在 # BEGIN WordPress 上面貼上以下 Recommended security headers 的設定。

# Recommended security headers
Header always set Strict-Transport-Security: "max-age=31536000" env=HTTPS
Header always set Content-Security-Policy "upgrade-insecure-requests;"
Header always set X-XSS-Protection "1; mode=block"
Header always set X-Content-Type-Options "nosniff"
Header always set Referrer-Policy: "no-referrer-when-downgrade"
Header always set Expect-CT "max-age=7776000, enforce"
# End Recommended security headers

位置如下:

# Recommended security headers
Header always set Strict-Transport-Security: "max-age=31536000" env=HTTPS
Header always set Content-Security-Policy "upgrade-insecure-requests;"
Header always set X-XSS-Protection "1; mode=block"
Header always set X-Content-Type-Options "nosniff"
Header always set Referrer-Policy: "no-referrer-when-downgrade"
Header always set Expect-CT "max-age=7776000, enforce"
# End Recommended security headers

# BEGIN WordPress
...

註:如要移除 HSTS,請把 max-age 設為 0,即 "max-age=0"

再重新檢測網站健康就好了。

網站健康結果良好,一切運作順利

參考資料

免費按讚支持創作

喜歡我的文章,請在下面按讚 5 下,助我得到 LikeCoin 獎賞,支持我繼續創作免費內容。

行有餘力,可以成為我的讚賞公民,每月送我一杯咖啡,從此每份贊助,都會化成實質支持。

作者簡介

香港斜槓族,喜歡學習的宅女。打工時期做過行銷、教育及IT行業。自學技能包括:網站開發、網路行銷、影片製作、平面設計等。

希望透過內在自我認知及外在技能培養的分享,幫助網路創業者實現理想生活,共建和諧美好的世界。

提交評論

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

本網站受 reCAPTCHA 保護,並適用 Google 隱私政策服務條款