Skip to content
Server Plugin

HSTS

所需依賴項io.ktor:ktor-server-hsts

程式碼範例 ssl-engine-main-hsts

原生伺服器
Ktor 支援 Kotlin/Native,可讓您在沒有額外運行時或虛擬機器的情況下運行伺服器。
支援: ✅

HSTS 外掛會根據 RFC 6797 將所需的 HTTP 嚴格傳輸安全性 標頭添加到請求中。當瀏覽器收到 HSTS 策略標頭時,它在指定期間內不再嘗試使用不安全的連線連接到伺服器。

請注意,HSTS 策略標頭在不安全的 HTTP 連線下會被忽略。為了讓 HSTS 生效,它應該透過安全連線提供服務。

添加依賴項

為了使用 HSTS,您需要將 ktor-server-hsts artifact 包含在建置腳本中:

Kotlin
Groovy
XML

安裝 HSTS

為了將 HSTS 外掛[安裝](#install)到應用程式中,請將其傳遞給指定

模組
模組允許您透過分組路由來組織應用程式。
中的 install 函數。下面的程式碼片段展示了如何安裝 HSTS ...

  • ... 在 embeddedServer 函數呼叫中。
  • ... 在明確定義的 module 中,該 moduleApplication 類別的擴充函數。
kotlin
kotlin

HSTS 外掛也可以[安裝](#install-route)到特定路由。如果您需要針對不同的應用程式資源使用不同的 HSTS 配置,這可能很有用。

配置 HSTS

HSTS 透過 HSTSConfig 公開其設定。下面的範例展示了如何使用 maxAgeInSeconds 屬性來指定客戶端應將主機保留在已知 HSTS 主機清單中的時間長度:

kotlin
install(HSTS) {
    maxAgeInSeconds = 10
}

您還可以針對不同主機提供不同的 HSTS 配置,使用 withHost

kotlin
install(HSTS) {
    maxAgeInSeconds = 10
    withHost("sample-host") {
        maxAgeInSeconds = 60
        includeSubDomains = false
    }
}

您可以在這裡找到完整的範例:ssl-engine-main-hsts