HSTS
필수 의존성: io.ktor:ktor-server-hsts
코드 예제: ssl-engine-main-hsts
HSTS 플러그인은 RFC 6797에 따라 요청에 필요한 HTTP Strict Transport Security (HSTS) 헤더를 추가합니다. 브라우저가 HSTS 정책 헤더를 받으면, 지정된 기간 동안 더 이상 보안되지 않은 연결로 서버에 연결을 시도하지 않습니다.
HSTS 정책 헤더는 보안되지 않은 HTTP 연결에서는 무시된다는 점에 유의하세요. HSTS가 효과를 발휘하려면 보안(secure) 연결을 통해 제공되어야 합니다.
의존성 추가
HSTS을 사용하려면 빌드 스크립트에 ktor-server-hsts 아티팩트를 포함해야 합니다:
HSTS 설치
애플리케이션에 HSTS 플러그인을 설치하려면, 지정된
install 함수에 전달하세요. 아래 코드 스니펫은 HSTS을 설치하는 방법을 보여줍니다... - ...
embeddedServer함수 호출 내부에서 설치. - ...
Application클래스의 확장 함수인 명시적으로 정의된module내부에서 설치.
HSTS 플러그인은 특정 경로에 설치할 수도 있습니다. 이는 애플리케이션 리소스마다 서로 다른 HSTS 구성이 필요한 경우 유용할 수 있습니다.
HSTS 설정
HSTS은 HSTSConfig를 통해 설정을 노출합니다. 아래 예제는 클라이언트가 알려진 HSTS 호스트 목록에 해당 호스트를 얼마나 오랫동안 유지해야 하는지 지정하기 위해 maxAgeInSeconds 속성을 사용하는 방법을 보여줍니다.
install(HSTS) {
maxAgeInSeconds = 10
}withHost를 사용하여 호스트마다 서로 다른 HSTS 구성을 제공할 수도 있습니다.
install(HSTS) {
maxAgeInSeconds = 10
withHost("sample-host") {
maxAgeInSeconds = 60
includeSubDomains = false
}
}전체 예제는 여기에서 확인할 수 있습니다: ssl-engine-main-hsts.
