網路安全性的最佳做法
無論您是從 Compute Engine 執行個體、Cloud Storage 值區,或是位於 Google Cloud以外的來源提供內容,Cloud CDN 和 Cloud Load Balancing 都能協助您遵循網路安全最佳做法。
設定安全性標頭
HTTP 規格包含許多用於控制下列項目的標頭:
- 用戶端行為
- 內容的內嵌方式
- 跨網域提供內容的方式
- 連線至該網域時是否一律使用 TLS (HTTPS)
這些控制項通常會以 HTTP 回應標頭的形式呈現,您可以為每個後端 (以 CDN 術語來說,就是來源) 設定自訂回應標頭,用於外部應用程式負載平衡器和 Cloud CDN 部署。
如果您使用 Cloud Storage,並透過值區提供網頁內容,可以在儲存空間值區前方使用 Cloud CDN,設定網頁安全性標頭和熱門內容快取。
下表定義了最實用的網頁安全性標頭。
標頭名稱 | 說明 | 應用實例 |
---|---|---|
Strict-Transport-Security (HTTP 嚴格傳輸安全性) |
設定這個標頭之前,請確認您的網域具有有效的 SSL (傳輸層安全標準) 憑證。 通知用戶端必須透過 HTTPS (SSL/TLS) 直接連線至您的網域,避免需要從 HTTP 重新導向至 HTTPS,因為後者速度較慢,且可能導致中間人攻擊。 設定這個標頭的動作無法復原。快取此標頭後,新式瀏覽器用戶端就不會嘗試非 HTTPS 連線,使用者也無法存取收到此標頭的任何網域,即使 SSL 已關閉也一樣。這項行為可防止攻擊者將安全通訊協定降級為未受保護的 HTTP (稱為降級攻擊)。
提供 |
要求用戶端在日後的所有連線中直接透過 HTTPS 連線,並將這項指令快取至最多兩年:
|
X-Frame-Options |
指出瀏覽器是否可以在 <frame>、<iframe>、<embed> 或 <object> 中轉譯網頁。這有助於防止點按劫持攻擊,因為這樣一來,您的內容就不會嵌入其他網站。 |
拒絕所有對網站的嵌入:X-Frame-Options: DENY
只允許自己的網站使用 iframe (嵌入) 功能: |
Content-Security-Policy
|
如要評估網站的內容安全政策,您可以使用 Google 的 CSP 評估工具。 | 不允許內嵌指令碼,且只透過 HTTPS 載入指令碼:
Content-Security-Policy: default-src https:
|
在現有網站中導入新的安全性標頭時,請務必謹慎操作,因為這可能會破壞第三方指令碼、嵌入內容 (例如在 iframe 中) 或網站的其他部分。建議您在正式版流量變更前,先建立後端桶或後端服務的第二個例項,並進行測試。
如要進一步瞭解網頁安全性標頭和最佳做法,請前往 web.dev 和 Mozilla 的 infosec 網站。
傳輸層安全標準 (TLS) 和憑證管理
受管理的憑證具有下列特性:
- 免費提供
- 可輕鬆部署至負載平衡器
- 自動續約
- 遍及全球的 Google 邊緣位置
TLS 會驗證資料在傳輸過程中未經過修改,以確保資料的真實性。TLS 憑證可確保使用者和伺服器之間的通訊內容不會遭到竊聽,進而提供機密性。這對使用者的隱私和安全性至關重要。
有了 SSL 憑證,您就能使用最新的傳輸協定,例如 HTTP/2 和 Google 的 QUIC 通訊協定,這兩者都需要 SSL (傳輸層安全標準)。這些通訊協定可直接改善網路內容、媒體傳遞 (例如串流影片) 的效能,以及在壅塞網路中的可靠性。
Google Cloud 支援 Cloud Load Balancing 和 Cloud CDN 服務中的新式 TLS 通訊協定 (例如 TLS 1.3)。
您可以使用 SSL 政策提高 TLS 最低版本。如果您不需要支援舊版用戶端 (例如嵌入式裝置或較舊的 (超過 10 年) 非瀏覽器用戶端),建議您將版本升級至 TLS 1.2。在全球範圍內,TLS 1.0 和 TLS 1.1 僅占 Google Cloud連線的 0.5% 以下。如果您需要識別或將特定用戶端與過時的 TLS 版本建立關聯,可以在要求標頭中使用 {tls_version}
變數。然後記錄這項資訊。