- 錯誤型別:
- 伺服器錯誤
- 錯誤名稱:
- 缺少HSTS
- 英文名稱:
- HSTS Missing From HTTPS Server
- 錯誤描述:
- 有时,IT安全扫描可能会报告您的站点“缺少HSTS”或“HTTP严格传输安全”标头。如果您遇到此错误,则说明您的网站未使用HSTS,这意味着您的HTTPS重定向可能会使您的访问者面临风险。
為HTTPS比HTTP安全得多。但是,如果您遇到“HSTS missing from HTTPS server”訊息,那麼此協議可能會使您的站點處於危險之中。
幸運的是,可以堵住這個嚴重的安全漏洞。即使您沒有遇到此錯誤訊息,任何從HTTP重定向到HTTPS的站點都容易受到此漏洞的攻擊。因此,採取積極主動的方法並修復此缺陷仍然是明智之舉。
在這篇文章中,我們將探討“HSTS missing from HTTP server”錯誤是什麼,以及為什麼它對任何使用HTTPS重定向的網站來說都是一個如此嚴重的問題。然後,我們將通過五個簡單的步驟向您展示如何解決此問題並阻止黑客。
“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掃描您的站點
安全標頭將檢查您的站點並在標頭部分顯示所有應用的標頭。如果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。
請注意,如果您使用任何第三方代理或設定任何自定義HTTPS規則,那麼強制HTTPS可能會導致錯誤或其他奇怪的行為。
如果您的Web伺服器正在執行Nginx,那麼您可以將所有HTTP流量重定向到HTTPS。只需將以下程式碼新增到您的Nginx配置檔案中:
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伺服器,則需要開啟您的虛擬主機檔案。然後,您可以新增以下內容:
Header always set Strict-Transport-Security max-age=31536000
如果您使用的是NG伺服器,那麼您可以將以下內容新增到您的Nginx配置檔案中:
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部分,該部分應包含以下內容:
strict-transport-security: max-age=31536000
或者,您可以使用安全標頭工具掃描您的站點。和以前一樣,只需輸入您網站的URL,然後單擊Scan。這將返回一個安全報告,其中應包含一個strict-transport-security標籤。如果此標記存在,那麼您的HSTS標頭現在已正確設定,並且您已成功關閉HTTPS重定向漏洞。
小結
從HTTP重定向到HTTPS是一種安全最佳實踐。但是,沒有任何技術是完美的,這種重定向可能會使您的網站更容易受到SSL攻擊。
考慮到這一點,讓我們回顧一下如何修復“HSTS Missing From HTTPS Server”錯誤:
- 建立站點的手動備份。
- 設定HTTP到HTTPS重定向。
- 新增HSTS標頭。
- 將您的網站提交到HSTS預載入列表。
- 驗證您的strict-transport-security標頭。
評論留言