ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Web] 보안헤더
    Study/Web 2023. 1. 16. 15:16
    • CSP(Content Security Policy)
    • HSTS(HTTP Strict Transport Security)
    • X-Content-Type-Options
    • X-Frame-Options
    • X-XSS-Protection

    CSP

    • 자신의 사이트에서 허용할 리소스(스크립트, 이미지, CSS등 등)를 제어하는 보안헤더
    • 도메인을 제한하거나 프로토콜을 지정할 수 있음 -> ex)모든 컨텐츠를 HTTPS로 적용
    • 주로 XSS(Cross-Site Scripting)를 막기 위해 사용

     

    CSP 구문

    Content-Security-Policy: {directive} {value};{directive} {value}; ...

    directive(지시자) - 어떤 정책을 설정할지 결정

    value(속성값) - 차단할 범위를 지정

     

    directive(지시자)

    value(속성값)

     예제

    Content-Security-Policy: default-src 'self' *.example.com; img-src *

    사이트 현재 도메인과 신뢰할 수 있는 도메인(*.example.com)의 컨텐츠 허용

    이미지는 어디에서나 허용


    HSTS

    • 브라우저에서 서버로 HTTP로 접속할때 HTTPS로 강제적으로 접근하게 하는 보안헤더
    • HSTS가 적용되어 있으면 서버는 HTTP연결을 하지 않고 바로 강제로 HTTPS로 리다이렉트
      -> 서버는 HTTP 연결 자체가 시도되지 않음
    • SSL http, SSL strip 공격을 예방

     

    구문

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

    directive

     -> max-age, includeSubDomains, preload

     

    directive(지시자)


    X-Content-Type-Options

    • MIME Type 스니핑 공격을 방지하기 위함
    • 리소스를 다운로드할 때 해당 리소스의 *MIME Type이 일치하지 않는 경우 차단
      -> script(js)를 다른 확장자(jpg)로 업로드하고, src 경로를 변경하여 script를 로드하는것을 방지

    *MIME Type : 클라이언트에게 전송되는 문서(파일)의 정보를 전달 ex)text/plain, text/html, image/png 등

     

    구문

    X-Content-Type-Options: nosniff

    X-Frame-Options

    • 해당 페이지를 <frame>, <iframe>, <object> 태그를 통해 사이트 내 컨텐츠가 다른 사이트에 포함되지 않도록 제한

     

    구문

    X-Frame-Options: DENY
    X-Frame-Options: SAMEORIGIN
    X-Frame-Options: ALLOW-FROM https://test.com

     

    directive(지시자)


    X-XSS-Protection - (Deprecate)

    • XSS공격 방지를 위한 보안헤더로 브라우저에 내장된 XSS 필터를 통해 공격을 방지
    • 비표준방식으로 오래된 웹 브라우저에서만 사용자를 보호

    구문

    X-XSS-Protection: 0 // 비활성화
    X-XSS-Protection: 1 // 활성화, 페이지 삭제
    X-XSS-Protection: 1; mode=block // 활성화, 페이지는 삭제하지 않고 렌더링을 금지
    X-XSS-Protection: 1; report=<reporting-uri> // 활성화, XSS탐지 시 URL로 보고서 리포팅

     


    참고

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

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

    https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP

     

    'Study > Web' 카테고리의 다른 글

    [Web] Python Flask Simple 업로드  (0) 2023.01.11
Designed by Tistory.