보안 헤더 HSTS, CSP, X-Frame-Options의 역할을 설명해주세요.
답변 포인트
브라우저 보안 정책 적용를 기준으로 정의, 장점, 한계, 예시를 함께 설명해보세요.
정답 및 해설
빠른 요약
HSTS는 HTTPS 사용을 강제하고, CSP는 허용 리소스 출처를 제한하며, X-Frame-Options는 클릭재킹을 줄입니다. 브라우저가 제공하는 중요한 방어층입니다.
HSTS, CSP, X-Frame-Options는 브라우저 보안 헤더로, 서버가 브라우저에게 안전한 동작 정책을 지시합니다. 애플리케이션 버그를 완전히 없애지는 못하지만 공격 가능성을 크게 줄입니다.
HSTS
Strict-Transport-Security는 브라우저가 해당 도메인에 HTTPS로만 접속하도록 강제합니다.
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload중간자 공격자가 HTTP로 downgrade시키는 것을 막는 데 도움이 됩니다. 단, includeSubDomains/preload는 되돌리기 어려워 적용 전 하위 도메인 HTTPS 준비가 필요합니다.
CSP
Content-Security-Policy는 스크립트, 이미지, 스타일, connect 대상 등을 제한합니다.
Content-Security-Policy: default-src 'self'; script-src 'self' 'nonce-r4nd0m'; object-src 'none'; frame-ancestors 'none'XSS가 있더라도 임의 inline script 실행을 어렵게 만들 수 있습니다. 처음에는 Content-Security-Policy-Report-Only로 모니터링하며 적용하는 것이 안전합니다.
X-Frame-Options
페이지가 iframe에 삽입되는 것을 제한해 clickjacking을 막습니다.
X-Frame-Options: DENY현대 CSP에서는 frame-ancestors가 더 유연하지만, 호환성을 위해 함께 쓰기도 합니다.
면접 답변 포인트
HSTS는 HTTPS 강제, CSP는 리소스 로딩 정책으로 XSS 피해 완화, X-Frame-Options는 clickjacking 방어입니다. 보안 헤더는 방어 심층화 수단이며 기능 영향이 있어 점진 적용과 모니터링이 필요하다고 답하면 좋습니다.