如何修復“HSTS Missing From HTTPS Server”錯誤

錯誤型別:
伺服器錯誤
錯誤名稱:
缺少HSTS
英文名稱:
HSTS Missing From HTTPS Server
錯誤描述:
有时,IT安全扫描可能会报告您的站点“缺少HSTS”或“HTTP严格传输安全”标头。如果您遇到此错误,则说明您的网站未使用HSTS,这意味着您的HTTPS重定向可能会使您的访问者面临风险。

如何修復“HSTS Missing From HTTPS Server”錯誤

為HTTPS比HTTP安全得多。但是,如果您遇到“HSTS missing from HTTPS server”訊息,那麼此協議可能會使您的站點處於危險之中。

幸運的是,可以堵住這個嚴重的安全漏洞。即使您沒有遇到此錯誤訊息,任何從HTTP重定向到HTTPS的站點都容易受到此漏洞的攻擊。因此,採取積極主動的方法並修復此缺陷仍然是明智之舉。

在這篇文章中,我們將探討“HSTS missing from HTTP server”錯誤是什麼,以及為什麼它對任何使用HTTPS重定向的網站來說都是一個如此嚴重的問題。然後,我們將通過五個簡單的步驟向您展示如何解決此問題並阻止黑客。

  1. “HSTS missing from HTTP server”錯誤簡介
  2. 如何修復“HSTS missing from HTTP server”錯誤

“HSTS missing from HTTP server”錯誤簡介

為了幫助確保訪問者的安全,網站執行HTTPS重定向的情況並不少見。此重定向將訪問者從HTTP轉發到網站的HTTPS版本。

使用者可以在其瀏覽器的位址列中明確輸入HTTP,或點選指向該站點HTTP版本的連結。在這些情況下,重定向可以防止惡意第三方竊取訪問者的資料。

然而,沒有什麼技術是完美的。如果您的站點確實使用HTTPS重定向,那麼您可能容易受到稱為安全套接字層 (SSL) 剝離的中間人 (MITM) 攻擊。作為此攻擊的一部分,黑客將阻止重定向請求並阻止瀏覽器通過HTTPS協議載入您的站點。結果,訪問者將通過HTTP訪問您的網站,這使黑客更容易竊取資料。

或者,攻擊者可能會攔截重定向並將訪問者轉發到您網站的克隆版本。此時,黑客可以竊取使用者共享的任何資料,包括密碼和支付資訊。一些黑客還可能試圖誘騙訪問者下載惡意軟體。

黑客也有可能通過不安全的連線竊取會話cookie,這種攻擊稱為cookie劫持。這些cookie可以包含大量資訊,包括使用者名稱、密碼,甚至信用卡詳細資訊。

為了保護您的訪問者免受這些攻擊,我們建議啟用HTTP嚴格傳輸安全 (HSTS)。此協議強制瀏覽器忽略任何直接請求並通過HTTPS載入您的站點。

HSTS協議(以及您可能想要使用它的原因)

HSTS是一個伺服器指令和網路安全策略。由Internet工程任務組 (IETF) 在RFC 6797中指定,HSTS為使用者代理和Web瀏覽器應如何處理通過HTTPS執行的站點的連線設定了規定。

有時,IT安全掃描可能會報告您的站點“缺少HSTS”或“HTTP嚴格傳輸安全”標頭。如果您遇到此錯誤,則說明您的網站未使用HSTS,這意味著您的HTTPS重定向可能會使您的訪問者面臨風險。

這被歸類為中等風險漏洞。然而,它非常普遍,對攻擊者來說是唾手可得的成果。如果您遇到此錯誤,那麼解決它至關重要。

通過將HSTS安全標頭新增到您的伺服器,您可以強制您的站點載入HTTPS協議。這有助於保護您的網站免受cookie劫持和協議攻擊。由於您可能會從載入過程中刪除重定向,因此您的網站也可能載入得更快

您可能沒有遇到此錯誤,但仍然擔心HSTS。如果您不確定是否啟用了HSTS,您可以使用諸如Security Headers之類的工具掃描您的站點。只需輸入您網站的URL,然後單擊Scan

使用Security Headers掃描您的站點

使用Security Headers掃描您的站點

安全標頭將檢查您的站點並在標頭部分顯示所有應用的標頭。如果Strict-Transport-Security出現,則您的站點受到保護。但是,如果未列出此標頭,那麼我們還有一些工作要做。

如何修復“HSTS Missing From HTTP Server”錯誤

對於黑客來說,HSTS漏洞是竊取資料或誘騙訪問者執行危險操作的絕佳機會。以下是啟用HSTS政策並確保您的網站安全的方法。

步驟 1:建立手動備份

啟用HSTS政策意味著您的網站發生了重大變化。因此,我們建議在繼續之前建立按需備份。這使您可以選擇在啟用HSTS時遇到任何問題的情況下恢復您的站點。

在寶塔面板,您可以設定WordPress備份計劃。但是,在進行任何重大更改之前建立手動備份仍然是明智之舉。要建立此安全網,請登入您的寶塔儀表盤。然後,單擊左側的“網站”選單,找到你需要備份的網站對應的備份操作,然後在彈窗中點選“備份站點”。

在寶塔面板執行網站備案操作

在寶塔面板執行網站備案操作

接下來,進行網站資料庫備份,選擇資料庫選單項。找到你需要備份的站點對應的資料庫,點選備份列對應的操作項,然後單擊彈窗的備份資料庫按鈕。

備份網站資料庫

備份網站資料庫

這樣,您即對網站完成了網站檔案及資料庫的備份操作。

步驟 2:設定HTTP到HTTPS重定向

在啟用HSTS策略之前,您需要將SSL證書部署到您的網站。在寶塔面板,你可以直接申請部署證書。除非您特別需要自定義證書,否則您不必擔心手動配置SSL。

點選寶塔面板左側的“網站”選單項,然後找到你需要配置SSL的網站,點選操作項“設定”,點選彈窗左側的“SSL”,然後根據需要申請及部署SSL,其中寶塔SSL和Let’s Encrypt的證書均免費,前者需要實名認證。

然後你必須開啟右上角的強制HTTPS,才可以實現將HTTP重定向至HTTPS。

HTTP重定向至HTTPS

請注意,如果您使用任何第三方代理或設定任何自定義HTTPS規則,那麼強制HTTPS可能會導致錯誤或其他奇怪的行為。

如果您的Web伺服器正在執行Nginx,那麼您可以將所有HTTP流量重定向到HTTPS。只需將以下程式碼新增到您的Nginx配置檔案中:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
server {
listen 80;
server_name domain.com www.domain.com;
return 301 https://domain.com$request_uri;
}
server { listen 80; server_name domain.com www.domain.com; return 301 https://domain.com$request_uri; }
server {
listen 80;
server_name domain.com www.domain.com;
return 301 https://domain.com$request_uri;
}

步驟 3:新增HSTS標頭

您可以將各種型別的指令和安全級別應用於HSTS標頭。但是,我們建議新增max-age指令,因為它定義了Web伺服器應通過HTTPS提供的時間(以秒為單位)。這會阻止訪問只能通過HTTP提供的頁面或子域。

如果您使用的是Apache伺服器,則需要開啟您的虛擬主機檔案。然後,您可以新增以下內容:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Header always set Strict-Transport-Security max-age=31536000
Header always set Strict-Transport-Security max-age=31536000
Header always set Strict-Transport-Security max-age=31536000

如果您使用的是NG伺服器,那麼您可以將以下內容新增到您的Nginx配置檔案中:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
add_header Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
add_header Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
add_header Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

與往常一樣,我們可以為您完成所有艱苦的工作。只需開啟支援票證,請求我們將HSTS標頭新增到您的站點。我們的團隊很樂意對您的Nginx檔案進行此更改。

步驟 4:將您的網站提交到HSTS預載入列表

HSTS政策有一個主要缺點。瀏覽器必須至少遇到一次HSTS標頭,然後才能將其用於將來的訪問。這意味著您的受眾將需要至少完成一次HTTP到HTTPS 重定向過程。在此期間,它們將容易受到基於協議的攻擊。

為了彌補這個安全漏洞,谷歌建立了HSTS預載入列表。這列出了所有支援HSTS的網站,然後將其硬編碼到Chrome中。通過將您的站點新增到此列表中,訪問者將不再需要完成初始HTTPS重定向。

大多數主要的網際網路瀏覽器都有自己的HSTS預載入列表,這些列表基於Chrome的列表。要獲得此列表的資格,您的網站必須符合提交標準。好訊息是我們已經涵蓋了所有這些要求,因此您可以繼續將您的網站提交到HSTS預載入列表。

一旦您進入此列表,一些搜尋引擎優化 (SEO) 工具可能會警告您有關307重定向。當有人試圖通過不安全的HTTP協議訪問您的站點時,就會發生這些重定向。這會觸發307重定向而不是永久301重定向。如果您對此感到擔憂,可以使用httpstatus掃描您的站點並驗證是否發生 301 重定向。

步驟 5. 驗證您的Strict-Transport-Security標頭

新增HSTS標頭後,最好測試它是否正常執行。您可以使用瀏覽器的內建 Web 工具執行此檢查。

這些步驟將根據您選擇的Web瀏覽器而有所不同。要執行此操作,請檢查Google Chrome DevTools,導航到您要測試的網頁。然後,您可以單擊任何空白區域,然後選擇檢查。

閃電博主頁

閃電博主頁

在隨後的面板中,選擇Network選項卡。然後,您可以檢查Headers部分,該部分應包含以下內容:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
strict-transport-security: max-age=31536000
strict-transport-security: max-age=31536000
strict-transport-security: max-age=31536000

或者,您可以使用安全標頭工具掃描您的站點。和以前一樣,只需輸入您網站的URL,然後單擊Scan。這將返回一個安全報告,其中應包含一個strict-transport-security標籤。如果此標記存在,那麼您的HSTS標頭現在已正確設定,並且您已成功關閉HTTPS重定向漏洞。

小結

從HTTP重定向到HTTPS是一種安全最佳實踐。但是,沒有任何技術是完美的,這種重定向可能會使您的網站更容易受到SSL攻擊。

考慮到這一點,讓我們回顧一下如何修復“HSTS Missing From HTTPS Server”錯誤:

  1. 建立站點的手動備份。
  2. 設定HTTP到HTTPS重定向。
  3. 新增HSTS標頭。
  4. 將您的網站提交到HSTS預載入列表。
  5. 驗證您的strict-transport-security標頭。

評論留言