[05/13] HTTP 보안헤더 검토

Haisley Jang·2024년 5월 13일

CS

목록 보기
1/5

목표 : HTTP 보안 헤더 예시 및 방식 알아보기

HTTP Strict Transport Security (HSTS)

HTTPS는 암호화 통신을 지원하여 데이터를 평문으로 전송하는 HTTP의 단점을 보완한다.

HSTS는 웹으로 접속할 때, 서버로 전송되는 요청을 HTTPS로 접근하도록 강제하는 헤더이다.

이를 통해 SSL Strip 공격을 방어할 수 있다.

  • 지시어
*Max-age=HTTPS를 통해서만 사이트에 접근할 수 있음을 브라우저가 기억해야하는 시간
includeSubDomainsHSTS가 적용될 subdomain
preload브라우저가 해당 사이트를 HSTS를 적용하고 preload list에 추가
  • 예제
Strict-Transport-Security: max-age=31536000; includeSubDomains
// 모든 subdomain은 1년의 max-age동안 HTTPS가 됨

X-XSS-Protection (Deprecate)

XSS공격을 감지하고, 페이지 로드를 중지한다.

XSS 공격 중, Reflected XSS 공격은 악의적인 사용자가 악성 스크리브를 포함한 링크를 사용자에게 전달하고, 이를 통해 정보를 탈취하거나 웹 사이트가 비정상적인 동작을 하도록 한다.

이를 예방하기 위해 <, >, “ 등의 특수 문자 필터링을 통해 방지한다.

  • 지시어
0;XSS 필터링 비활성화
1;XSS 필터링 사용, 스크립팅 XSS 공격이 감지되면 안전하지 않은 영역 제거 후 렌더링
1; mode = blockXSS 필터링 사용, 영역 제거 대신 렌더링 중단
1; report = XSS 필터링 사용, 페이지 렌더링 차단 후 위반 사항 보고
  • 예제
X-XSS-Protection: 1; mode=block

Contents-Security-Policy (CSP)

X-XSS-Protection 기능을 포함한 웹 보안 정책을 가진다.

XSS와 Data injection, Click Jacking등 을 예방하며, 태그 및 Contents의 출처를 제한하거나 허용하여 허용된 소스만 실행하거나 로드될 수 있도록 보호한다.

  • 지시어 일부
default-src리소스 유형에 대한 폴백, 인라인 스크립트 실행 방지, eval() 사용 차단, 인라인 스타일이
script-src인라인 스크립트 실행 방지, eval() 사용 차단
style-src인라인 스타일이
  • meta 요소로 구성하기
<meta
  http-equiv="Content-Security-Policy"
  content="default-src 'self'; img-src https://*; child-src 'none';" />

X-Frame-Options

해당 페이지를 <frame> 또는, <iframe>, <object> 에서 렌더링할 수 있는 여부를 나타나는 데에 사용된다.

사이트 내 iframe을 비활성화 하게 만들어, 다른 사람들은 해당 사용자의 콘텐츠를 삽입하지 못하게 한다.

  • 지시어
deny모든 사이트에서 비활성화
sameorigin동일한 사이트의 frame에서만 보여짐
allow-from uri지정된 특정 uri의 frame에서만 보여짐
  • 예제
Header always set X-Frame-Options "sameorigin"

참고 자료

https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/

https://www.igloo.co.kr/security-information/secure-header를-이용한-브라우저-보안/

https://zulloper.github.io/posts/HTTP-Security-Headers/

https://blog.naver.com/PostView.naver?blogId=ucert&logNo=221244965677&categoryNo=37&parentCategoryNo=0

profile
안녕하세요

0개의 댓글