HTTP

所有基於 HTTP 的通訊,包含靜態資源,都應該使用 TLS 保護。

作為一個框架,Spring Security 不處理 HTTP 連線,因此不直接提供 HTTPS 支援。然而,它確實提供了許多有助於 HTTPS 使用的功能。

重新導向至 HTTPS

當用戶端使用 HTTP 時,您可以設定 Spring Security 在 ServletWebFlux 環境中都重新導向至 HTTPS。

嚴格傳輸安全

Spring Security 提供 嚴格傳輸安全 的支援,並預設啟用它。

Proxy 伺服器組態

當使用 Proxy 伺服器時,確保您已正確設定應用程式非常重要。例如,許多應用程式都有一個負載平衡器,透過將請求轉發到 https://192.168.0.107 的應用程式伺服器,來回應 https://example.com/ 的請求。若沒有適當的組態,應用程式伺服器可能不知道負載平衡器的存在,並將請求視為用戶端請求 https://192.168.0.107:8080

為了修正此問題,您可以使用 RFC 7239 來指定正在使用負載平衡器。為了讓應用程式意識到這一點,您需要設定您的應用程式伺服器以感知 X-Forwarded 標頭。例如,Tomcat 使用 RemoteIpValve,而 Jetty 使用 ForwardedRequestCustomizer。或者,Spring 使用者可以在 Servlet 堆疊中使用 ForwardedHeaderFilter,或在 Reactive 堆疊中使用 ForwardedHeaderTransformer

Spring Boot 使用者可以使用 server.forward-headers-strategy 屬性來設定應用程式。有關更多詳細資訊,請參閱 Spring Boot 文件