Server Plugin
HSTS
必需依赖项:io.ktor:ktor-server-hsts
代码示例: ssl-engine-main-hsts
原生服务器支持:✅ Ktor 支持 Kotlin/Native,允许您在没有额外运行时或虚拟机的情况下运行服务器。
HSTS 插件根据 RFC 6797 向请求添加所需的 HTTP Strict Transport Security 标头。当浏览器收到 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。
