在你的Apache安全配置中添加HSTS的重要性--它如何保護你以及為什麼確保你啟用它是如此關鍵

  • 使用HSTS的優勢是什麼?
  • 總結。今天在你的域名上使用SSL證書和啟用HSTS的重要性

讓我們仔細看看什麼是HSTS,為什麼你需要它,以及你如何通過在.htaccess文件中添加幾行程式碼來輕鬆實現HSTS。

你肯定已經知道,HTTPS(HTTP over SSL/TLS)是SEO的一個排名因素。自從Google在2014年8月宣布以來,HTTPS逐漸得到重視。最近幾個月,以及從2018年7月開始,Google流行的Chrome瀏覽器將把非HTTPS網站標記為 “不安全”,顯然,HTTPS作為Google排名因素的重要性正在增加。

資訊很清楚:安全和網站速度是Google的首要任務。

幾年來,網站管理員和網站所有者應該將他們的網站從HTTP轉移到HTTPS,這一點已經很清楚。因此,讓我們假設你們都已經切換到HTTPS了。如果你還沒有這樣做,現在是時候了解更多關於如何轉換到HTTPS的資訊了。你應該從閱讀有關這一主題的眾多文章中的一篇開始。一個好的起點是諸如HTTP to HTTPS: An SEO’s guide to securing a websiteMoving your website to HTTPS / SSL等文章,以了解更多相關資訊。

什麼是HSTS,為什麼你需要它?

HTTP嚴格傳輸安全–或簡稱HSTS–是一種網路安全策略機制,有助於保護網站免受協議降級攻擊和cookie劫持。HSTS是由 伺服器通過一個名為 "Strict-Transport-Security "的HTTP響應頭欄位傳達給用戶代理的。這指定了一個時間段,在此期間,用戶代理應該只以安全的方式訪問 伺服器。

閱讀[維基百科文章](https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security),我們了解了HSTS安全頭的好處。

HSTS策略有助於保護網路應用 程式用戶免受一些被動竊聽和主動網路攻擊。當用戶的瀏覽器對該網路應用 程式實施HSTS策略時,中間人攻擊者攔截用戶和網路應用 程式 伺服器之間的請求和響應的能力大大降低。

[ … ]

HSTS能夠修復的最重要的安全漏洞是SSL剝離中間人攻擊,這是由Moxie Marlinspike在2009年BlackHat聯邦演講 "New Tricks For Defeating SSL In Practice "中首次公開介紹的。SSL(和TLS)剝離攻擊的工作原理是將一個安全的HTTPS連接透明地轉換成一個普通的HTTP連接。用戶可以看到該連接是不安全的,但關鍵是沒有辦法知道該連接是否應該是安全的。許多網站沒有使用TLS/SSL,因此沒有辦法知道(在沒有事先了解的情況下)使用普通HTTP是由於攻擊,還是僅僅因為網站沒有實施TLS/SSL。

此外,在降級過程中沒有向用戶提出警告,這使得攻擊相當微妙,除了最警惕的人。Marlinspike的sslstrip工具可以完全自動進行攻擊。HSTS通過通知瀏覽器與網站的連接應始終使用TLS/SSL來解決這個問題。如果這是用戶的第一次訪問,HSTS標頭可以被攻擊者剝離。

因此,HSTS指示網路瀏覽器在與網站通信時,對所有未來請求只使用安全連接。

這樣做有助於防止SSL協議攻擊、SSL剝離、cookie劫持和其他試圖規避SSL保護的行為。

##改善SEO和頁面速度

HSTS不僅提高了你的網站安全性。它還能給你帶來輕微的SEO改進,因為使用HSTS會使你的網站載入速度加快一些。

它是這樣工作的。

當你載入一個只使用HTTPS的網站時,你的瀏覽器將首先嘗試調用HTTP版本,然後才意識到一個頁面支持HTTPS。這種最初的HTTP嘗試將導致你的網站載入時間的小延遲。當然,我們談論的是毫秒,但當涉及到你的頁面速度時,每一毫秒都很重要。

啟用HSTS后,瀏覽器知道只使用HTTPS,使重新導向瞬間完成,消除了任何延遲時間。

如何通過.htaccess添加HSTS安全頭文件

如果你正在運行一個WordPress網站,你可以選擇使用許多外掛中的一個來促進HSTS。但有一個更簡單的方法,而且不需要安裝第三方外掛。只需在你的.htaccess文件中添加以下幾行程式碼。

## apache.conf 
# 額外的安全頭資訊
頭部設置X-XSS-Protection "1; mode=block"
頭部總是附加X-Frame-Options SAMEORIGIN
頭部設置X-Content-Type-Options nosniff
頭部設置Strict-Transport-Security "max-age=31536000" env=HTTPS
Header set Referrer-Policy "no-referrer-when-downgrade"``````。

請注意,當你的Web 伺服器發送這個頭資訊時,任何通過HTTPS訪問網站的瀏覽器都將在指定的時間內無法訪問不安全的HTTP網站。在這種情況下,31,536,000秒,或一年。

正因為如此,一旦你啟用HSTS,你就不應該***停止在你的網站上使用SSL。如果你這樣做,返回的訪問者將無法訪問你的網站。

如何檢查你的安全頭文件

一旦你編輯了你的.htaccess文件,你要檢查並確保它被正確實施。

一個分析HTTP響應頭的好網站是由Scott Helme製作的–為Scott的這項服務點個大贊!

通過在你的.htaccess中使用上述程式碼,你應該達到A級。

如果你想更進一步,爭取達到A+,你還需要實施內容安全策略(CSP),以防止跨站腳本 - CSS - 攻擊。

應用CSP標頭可能比設置HSTS稍微麻煩一些,所以可以把這項工作留到以後。