HTTP Security Headers (Http 보안 헤더)

2024. 12. 11. 20:38·Web

HTTP Strict Transport Security (HSTS)

간단하게 해당 WEB에 접근할 때 강제로 HTTPS로 강제적으로 접근하도록하는 헤더이다. 간혹 HTTP로 접근 시 강제로 HTTPS로 접속하도록 한다.
HTTPS를 강제하므로써 SSL Strip 공격을 방어할 수 있는 보안 헤더, 다만 서브도메인이 허용되어 있을 경우 우회할 가능성이 존재한다.
브라우저 내부에 HSTS List를 구성하고 있어 헤더의 정보들이 저장된다.(max-age 등)

Values

이름 설명
max-age 초 단위로 설정되며, 브라우저에서 설정될 시간을 나타냄
includeSubdomains 해당 도메인의 서브도메인까지 설정할 것인지 나타냄
preload 브라우저의 Preload list에 추가하므로써 헤더가 없더라도 list에 존재할 경우 브라우저가 강제로 HTTPS로 요청도록 함

Example

Strict-Transport-Security: max-age=<expire-time> ; includeSubDomains
Strict-Transport-Security: max-age=<expire-time>; preload;



Content-Security-Policy (CSP)

대표적으로 XSS을 예방하는 보안 헤더로써, 태그 및 Contents의 출처에 대한 제한 및 허용 값을 헤더 값에 포함 시켜 브라우저가 응답 값의 인라인 스크립트의 실행을 제한한다.

태그를 이용하여 응답 값에 추가할 수 있고, 응답 헤더에 사용할 수 있다.

지시문(일부)

 

이름 설명
default-src 디폴트를 설정
connect-src ajax, websockets등 다른 URL 연결을 제한
script-src script 사용 시 해당 출처를 제한
child-src iframe 태그 등 inner contents를 제한
style-src CSS 출처를 제한
font-src Web Font의 출처를 제한
img-src Image의 출처를 제한
media-src media의 출처를 제한
object-src object태그 사용 시 출처를 제한

Src Values

이름 설명
self 현재 도메인만 허용
none 모든 도메인을 제한
특정 도메인 및 호스트 http://www.foo.com, foo.com:80, foo.com:443
unsafe-inline 해당 항목은 인라인으로 사용되는 것을 허용
nonce-'value' nonece-'value' 라는 속성 값을 사용할 경우, 해당 항목을 허용

Example (meta tag)

<meta http-equiv="Content-Security-Policy" content="default-src 'self' trust.com *.trust.com; script-src 'nonce-aaaaaaaaaa' img-src https://*;">

Example (Response Headers)

Content-Security-Policy: default-src 'self' trust.com *.trust.com; script-src 'nonce-aaaaaaaaaa' img-src https://*;

Example

<script src='http://foo.com/assets/js/example.js'></script> //사용불가
<script> alert('xss'); </script> //사용불가
<script nonce=aaaaaaaaaa> alert('XSS'); </script> //사용가능

<img src='http://foo.com/assets/img/foo.png'> //사용 불가
<img src='https://foo.com/assets/img/foo.png'> //사용 가능



X-Frame-Options

HTML에 다른 페이지나 컨텐츠를 삽입할 수 있는 <frame>, <iframe>, <object> 등의 태그를 이용한 ClickJacking 공격에 대응할 수 있는 보안 헤더이다.

Values

이름 설명
DENY 다른 페이지 및 컨텐츠를 표시 제한
SAMEORIGIN 같은 도메인의 페이지 및 컨텐츠는 허용
ALLOW-FROM uri uri에 도메인을 추가하여 해당 도메인이 페이지나 컨텐츠를 허용

Example

X-Frame-Options: deny
X-Frame-Options: sameorigin
X-Frame-Options: allow-from https://example.com/



X-XSS-Protection (Deprecate)

XSS 공격을 방어하기 위한 보안 헤더로 브라우저에 내장된 XSS 필터를 통해 공격을 방지하도록한다.
응답 값에는 정상적으로 XSS 공격하였더라도 브라우저의 해당 공격을 필터링할 경우 작동되지 않도록 한다. 이는 각각 브라우저 마다 필터나 성능의 차이로 인해 차단되는 경우는 상이하다. 그로 인해 CSP 헤더 사용을 권고한다.

Values

이름 설명
0 XSS 필터링을 비활성화
1 XSS 필터링을 활성화, 탐지된 영역을 제거한 후 랜더링
1; mode=block XSS 필터링을 활성화, 공격 탐지 시 페이지 랜더링을 중단
1; report= XSS 필터링을 활성화, 공격 탐지 시 해당 uri로 리포팅 (Chromium만 지원)

Example

X-XSS-Protection: 0; // 비활성화
X-XSS-Protection: 1; // 활성화, 랜더링
X-XSS-Protection: 1; mode=block // 활성화, 랜더링 중단
X-XSS-Protection: 1; report=foo.com // 활성화, 랜더링 중단, 해당 uri로 리포팅
저작자표시 (새창열림)

'Web' 카테고리의 다른 글

단축 URL의 위험성  (0) 2024.12.11
'Web' 카테고리의 다른 글
  • 단축 URL의 위험성
zulloper
zulloper
blog
  • zulloper
    zulloper blog
    zulloper
  • 전체
    오늘
    어제
    • Catagory (47)
      • Web (2)
      • Web Hacking (4)
      • CVE (1)
      • Mobile (1)
      • Pwnable (1)
      • Reversing (5)
      • Redteam (2)
      • Python (0)
      • Wargame | CTF (29)
        • Webhacking.kr (25)
        • Suninatas (4)
        • Python Challenge (0)
        • Hack The Box (0)
      • 기타 (0)
  • 블로그 메뉴

    • Category
    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    action message format
    mssql server injection
    BurpSuite
    ms-sql server
    oracle sql injection
    윈디버거
    oracle db server sql injection
    mssql injection
    oracle db sql injection
    Export Address Table
    oracle-sql injection
    RAW 계산식
    hsts
    WinDbg
    HTML smuggling
    oracle injection
    http security header
    ms-sql injection
    Process 숨기기
    RAW 비례식
    oracle db injection
    스머글링
    DLL 확인
    web
    security header
    액션 메시지 포맷
    burp 인증서
    RAW 값
    ms injetion
    pwntools
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
zulloper
HTTP Security Headers (Http 보안 헤더)
상단으로

티스토리툴바