전체 가이드
높음 심각도보안 헤더

HTTP Strict Transport Security (HSTS) 설명

HTTP Strict Transport Security (HSTS)는 브라우저가 오직 HTTPS로만 사이트에 연결하도록 지시하는 응답 헤더입니다. 한 번 확인하면, 브라우저는 정책이 유효한 동안 도메인에 대한 일반 HTTP 연결을 거부합니다.

무엇인가요

HSTS는 Strict-Transport-Security 헤더로 전달됩니다. 예: max-age=31536000; includeSubDomains; preload. max-age는 브라우저가 규칙을 기억하는 기간(초)입니다.

첫 HTTPS 방문 이후, 브라우저는 이후의 모든 요청을 자동으로 HTTPS로 업그레이드합니다 — 사용자는 실수로 안전하지 않은 버전에 접속할 수 없고, 공격자는 연결을 HTTP로 되돌릴 수 없습니다.

왜 중요한가요

HSTS가 없으면 사용자가 처음 보내는 요청(yourdomain.com 입력)이 일반 HTTP로 나가며, HTTPS 리디렉션이 일어나기도 전에 가로채일 수 있습니다 — 전형적인 SSL 스트리핑 공격입니다.

약한 HSTS 정책은 보호를 약화시킵니다: 짧은 max-age는 적용 기간을 줄이고, includeSubDomains 생략은 모든 서브도메인을 다운그레이드에 노출된 채로 둡니다.

고치는 방법

강력한 헤더 보내기

긴 max-age(1년)를 사용하고, 서브도메인을 포함하고, preload에 등록하세요.

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
먼저 모든 곳에서 HTTPS 확인하기

모든 서브도메인이 유효한 HTTPS를 제공한 뒤에만 includeSubDomains와 preload를 추가하세요 — 그렇지 않으면 준비되지 않은 서브도메인에서 사용자를 차단할 수 있습니다.

preload 목록에 제출하기

헤더에 'preload'가 포함되면 hstspreload.org에 도메인을 제출하여 브라우저가 아주 첫 방문에서도 HTTPS를 적용하도록 하세요.

자주 묻는 질문

어떤 max-age를 사용해야 하나요?

최소 15552000(6개월)이며, 31536000(1년)이 흔한 권장값이고 preload 목록에 필요합니다.

HSTS가 내 사이트에서 나를 차단할 수 있나요?

나중에 HTTP로 제공해야 하거나 HTTPS 없는 서브도메인이 있는 경우에만 그렇습니다. includeSubDomains나 preload를 활성화하기 전에 충분히 테스트하세요.

내 앱도 영향을 받나요?

AppSafe는 이 문제와 수십 가지 다른 문제를 한 번의 무료 스캔으로 점검합니다.

내 앱 무료 스캔