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 构件:

Kotlin
Groovy
XML

安装 HSTS

要将 HSTS 插件安装到应用程序,请将其传递给指定

模块
模块允许您通过分组路由来组织应用程序。
中的 install 函数。以下代码片段展示了如何安装 HSTS ...

  • ... 在 embeddedServer 函数调用内部。
  • ... 在显式定义的 module 内部,它是 Application 类的扩展函数。
kotlin
kotlin

HSTS 插件也可以安装到特定路由。如果您需要为不同的应用程序资源使用不同的 HSTS 配置,这可能很有用。

配置 HSTS

HSTS 通过 HSTSConfig 暴露其设置。以下示例展示了如何使用 maxAgeInSeconds 属性来指定客户端应在已知 HSTS 主机列表中保留主机多长时间:

kotlin
install(HSTS) {
    maxAgeInSeconds = 10
}

您还可以使用 withHost 为不同的主机提供不同的 HSTS 配置:

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

您可以在这里找到完整示例:ssl-engine-main-hsts