-
[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