如何新增WordPress網站HTTP安全標頭

HTTP安全標頭目的是為WordPress網站新增額外的安全層。它們可以幫助阻止常見的惡意行為影響網站安全及效能。

在本教學中,我們將詳細介紹如何在WordPress中新增HTTP安全標頭。

新增WordPress網站HTTP安全標頭

什麼是HTTP安全標頭?

HTTP安全標頭是一種安全措施,在影響您的網站之前阻止一些常見的安全威脅。

基本上,當使用者訪問您的網站時,Web伺服器會將HTTP標頭響應傳送回客戶端瀏覽器。該響應告訴瀏覽器有關錯誤程式碼,快取控制和其他狀態的資訊。

正常的標頭響應會發出狀態為HTTP 200的訊息。此後,使用者的瀏覽器就會載入您的網站內容。但是,如果您的網站出現問題,則您的網路伺服器可能會傳送其他HTTP標頭。

例如,它可能會傳送503伺服器不可用錯誤400錯誤程式碼。

HTTP安全標頭是這些標頭的子集,用於防止網站遭受常見的威脅,例如點選劫持,跨站點指令碼,暴力攻擊等。

下面讓我們瀏覽一下常見HTTP安全標頭以及它們如何保護您的網站。

HTTP嚴格傳輸安全協議(HSTS)

HTTP嚴格傳輸安全(HSTS)標頭告訴Web瀏覽器您的網站使用HTTPS,並且不應使用HTTP這樣的不安全協議進行載入。

配置HSTS(HTTP嚴格傳輸安全協議)響應標頭,以強制瀏覽器始終在您的站點上使用HTTPS而不是HTTP。 當瀏覽器訪問您的站點並接收 Strict-Transport-Security 響應標頭時,它告訴瀏覽器將對所有將來 http:// 站點的URL請求轉換為https://請求。標頭可以包括以下選項:1)max-age=<seconds> 說明應遵循多少秒的HSTS策略 2)includeSubDomains 說明將策略應用於所有子域。例如,Strict-Transport-Security: max-age=31536000; includeSubDomains 告訴瀏覽器一年內所有子域都使用HTTPS。Warning: 從 max-age 較小值開始直到您確保可以管理站點的HTTPS配置為止。畢竟如果在通過HTTPS載入頁面時遇到問題,在沒有解決問題之前使用者將無法訪問您的網站。

如果您已將WordPress網站從HTTP移至HTTPs,則此安全標頭可強制瀏覽器通過HTTPS載入網站。

X-XSS保護

X-XSS Protection標頭允許您阻止跨站點指令碼載入到WordPress網站上。

通過啟用瀏覽器XSS安全措施來防禦XSS攻擊。 XSS攻擊者向正在傳送給使用者的頁面中注入程式碼。某些瀏覽器內建XSS保護,可以通過新增 X-XSS-Protection: 1; mode=block 到每個頁面的響應標頭中來啟用。如果瀏覽器檢測到XSS攻擊,此設定將停止呈現頁面。請注意,這僅應被視為針對XSS攻擊的不得已的防禦措施。您的網站應經過全面審查,並在構建時應考慮XSS防護措施,以防止注入攻擊。

X-Frame-Options

X-Frame-Options安全標頭可防止跨域iframe或點選劫持。

通過限制將網頁嵌入到iframe中來防止點選劫持攻擊。 點選劫持攻擊者在其控制的網站上的iframe中顯示頁面。例如,攻擊者可能會在iframe上覆蓋一個UI層,以誘騙訪問者在頁面上觸發操作以及覆蓋表單欄位以竊取資料。點選劫持常見用於社交分享連結,點選廣告和竊取密碼。使用 X-Frame-Options 響應標頭來限制主機嵌入頁面,從而抵禦這些攻擊。可能的選項是1)DENY 限制所有URL 2) SAMEORIGIN 僅允許來自與頁面相同來源的URL 3) ALLOW-FROM 允許來自特定來源。例如,X-Frame-Options: DENY 將阻止所有iframe使用。您應該使用盡可能嚴格的設定。

X-Content-Type-Options

X-Content-Type-Options阻止內容mime型別的嗅探。

關閉瀏覽器內容嗅探,以防止內容嗅探漏洞。 在處理響應時,瀏覽器有時會忽略 Content-Type 標頭中的MIME型別,並根據響應的內容猜測型別。這稱為內容嗅探,用於在 Content-Type 標頭不正確或丟失時改善使用者體驗。但這可能會被惡意利用。例如,如果您的站點允許使用者共享影象,則攻擊者可能能夠上載包含JavaScript程式碼的特製影象檔案。然後,可能會誘騙執行內容嗅探的瀏覽器執行惡意檔案。為了減少內容嗅探攻擊,請將 X-Content-Type-Options 響應標頭設定為 nosniff。這告訴瀏覽器避免猜測響應型別,而僅依賴於 Content-Type 標頭。

為WordPress新增HTTP安全標頭

在網路伺服器級別設定,HTTP安全標頭工作效果最佳。這使它們可以在典型的HTTP請求中儘早觸發,並提供最大的收益。

如果您使用的是DNS級別的網站應用程式防火牆(如Sucuri或Cloudflare),它們甚至會更好。下面我們將介紹每種方法,您可以選擇最適合自己的一種。

1.使用Sucuri新增HTTP安全標頭

Sucuri是市場上最好的WordPress安全外掛。如果您還使用他們的網站防火牆服務,則可以設定HTTP安全標頭,而無需編寫任何程式碼。

首先,您需要註冊一個Sucuri帳戶。它是一項付費服務​​,帶有伺服器級網站防火牆,安全外掛,CDN和惡意軟體清除保證。

在註冊過程中,您需回答簡單的問題,Sucuri文件將幫助您在網站上設定網站應用程式防火牆。

註冊後,您需要安裝並啟用免費的Sucuri外掛

啟用後,轉到Sucuri Security » Firewall (WAF)頁面,然後輸入防火牆API金鑰,您可以在Sucuri網站帳戶下找到此資訊。

Sucuri安全外掛防火牆API

接下來,切換到Sucuri帳戶儀表盤。在此處,單擊頂部的“Settings”選單,然後切換到“Security”選項卡。

sucuri安全標頭規則設定

在這裡,您可以選擇三種規則。預設保護為HSTS和HSTS Full。您將看到哪些HTTP安全標頭將應用於每組規則。

選擇你需要的安全規則,點選“Save Changes in The Additional Headers”按鈕以應用更改。

Sucuri現在將在WordPress中新增您選擇的HTTP安全標頭。由於它是DNS級別的WAF,因此在黑客到達您的網站之前,也可以保護您的網站流量免受黑客的攻擊。

2.使用Cloudflare新增HTTP安全標頭

Cloudflare提供了基本的免費網站防火牆和CDN服務。它的免費套餐中缺少高階安全功能,需要升級到價格更高的專業計劃才可以實現高階別網站防護。

要在您的網站上新增Cloudflare,請參閱有關如何在WordPress中新增Cloudflare免費CDN的教學。

一旦Cloudflare在您的網站上處於活動狀態,請轉到Cloudflare帳戶資訊中心下的SSL/TLS頁面,然後切換到“Edge Certificates”選項卡。

cloudflare安全標頭

現在,向下滾動到“HTTP Strict Transport Security (HSTS) ”部分,然後單擊“Enable HSTS”按鈕。

cloudflare啟用hsts

這將彈出一個彈出視窗,其中包含說明,告訴您在使用此功能之前必須在WordPress部落格上啟用HTTPS 。單擊下一步按鈕繼續,您將看到新增HTTP安全標頭的選項。

cloudflare啟用https標頭

在這裡,您可以啟用HSTS,no-sniff標頭,將HSTS應用於子域(如果它們使用的是HTTPS)並預載入HSTS。

此方法使用HTTP安全標頭提供基本保護。但是,它不允許您新增X-Frame-Options,並且Cloudflare沒有使用者介面可以執行此操作。

您仍然可以通過使用Workers功能建立指令碼來做到這一點。但是,建立HTTPS安全標頭指令碼可能會給初學者帶來意外的問題,一般不推薦這樣做。

3.使用.htaccess新增HTTP安全標頭

此方法允許您在伺服器級別為WordPress網站設定HTTP安全標頭。

它要求您編輯網站上的.htaccess檔案(找不到htaccess?)。它是最常用的Apache Web伺服器軟體使用的伺服器配置檔案。

只需使用FTP客戶端或託管伺服器控制面板中的檔案管理器應用程式連線到您的網站。在網站的根資料夾中,找到.htaccess檔案並進行編輯。

編輯htaccess

在檔案底部,您可以新增程式碼以將HTTPS安全標頭新增到WordPress網站。

您可以參考以下示例程式碼,這是最常用也是最佳的HTTPs安全標頭設定:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<ifModule mod_headers.c>
Header set Strict-Transport-Security "max-age=31536000"
env=HTTPS
Header set X-XSS-Protection "1; mode=block"
Header set X-Content-Type-Options nosniff
Header set X-Frame-Options DENY
Header set Referrer-Policy: no-referrer-when-downgrade
</ifModule>
<ifModule mod_headers.c> Header set Strict-Transport-Security "max-age=31536000" env=HTTPS Header set X-XSS-Protection "1; mode=block" Header set X-Content-Type-Options nosniff Header set X-Frame-Options DENY Header set Referrer-Policy: no-referrer-when-downgrade </ifModule>
<ifModule mod_headers.c> 
Header set Strict-Transport-Security "max-age=31536000" 
env=HTTPS 
Header set X-XSS-Protection "1; mode=block" 
Header set X-Content-Type-Options nosniff 
Header set X-Frame-Options DENY 
Header set Referrer-Policy: no-referrer-when-downgrade 
</ifModule>

不要忘記儲存更改並訪問網站,以確保一切正常。

注意:錯誤的標題或.htaccess檔案中的衝突可能會在大多數Web主機上觸發500內部伺服器錯誤。

4.使用WordPress外掛新增HTTP安全標頭

這種方法效果不佳,因為它依賴WordPress外掛來修改標頭。但是,這也是為WordPress網站新增HTTP安全標頭的最簡單方法。

首先,您需要安裝並啟用 Redirection 外掛。

啟用外掛後,將進入外掛設定嚮導,您可以按照該向導進行設定。之後,轉到 Tools » Redirection 頁面,然後切換到“Site”選項卡。

網站重定向設定

接下來,需要向下滾動到頁面底部的“HTTP Headers”部分,然後點選“Add Header”按鈕。從下拉選單中,您需要選擇“Add Security Presets”選項。

新增http安全標頭重定向

之後,您將需要再次點選以新增這些選項。然後,您會看到一個HTTP安全標頭的預設列表出現在表中。

https安全標頭常見規則設定

這些標頭針對安全性進行了優化,您可以對其進行檢視並在需要時進行更改。完成後,請不要忘記點選“Update”按鈕以儲存更改。

最後,訪問您的網站,以確保一切正常。

如何檢查網站的HTTP安全標頭

將HTTP安全標頭新增到您的WordPress網站後,您可以使用免費的“Security Headers”工具測試配置是否正確。只需輸入您的網站URL,然後單擊“Scan”按鈕。

https安全評分

然後它將檢查您網站的HTTP安全標頭,並反饋報告。該工具將生成一個所謂的評分標籤,您可以忽略該標籤,因為大多數網站最多會獲得B或C評分,這一般不會影響使用者體驗。

它將具體顯示您的網站傳送了哪些HTTP安全標頭,並且不包含哪些安全標頭。如果您要設定的安全標頭在此處列出,則說明您已完成。

希望本教學能幫助您學會如何在WordPress網站中新增HTTP安全標頭。

評論留言