본문 바로가기

해킹-보안

웹 보안 헤더 종류

반응형

ி X-Frame-Option

 
<frame>, <iframe>, <object> 태그 등의 렌더링 여부를 나타내는데 사용한다.
사용자의 눈에 보이지 않는 영역을 추가하여 사용자는 의도한대로 버튼을 누르지만 실제로는
다른 곳을 클릭하게 만드는 ClickJacking 방지 옵션이다.


헤더

 X-Frame-Options : DENY 모든 표시 거부 
 X-Frame-Options : SAMEORIGIN 동일한 출처만 표시 
 X-Frame-Options : ALLOW FROM http://a.com a.com에 대해서만 허용




ி X-Content-Type-Option

 
리소스 다운로드 시 해당 리소스의 MIMETYPE 형식이 일치하지 않으면 차단하는 헤더이다.
자바스크립트를 로딩하려면 JavaScript MIME 형식("text/javascript" 또는 "application/javascript")을 가져야만
JavaScript로 해석한다는 의미이다. 공격자가 다른 확장자(jpg)로 서버에 파일을 업로드 한 후 script 태그등의
src 경로를 변경하여 script를 로드 하는 등의 공격을 방지한다.


헤더

 X-Content-Type-Options: nosniff




ி Strict-Transport-Security

 
한번 https로 접속 하는 경우 이후의 모든 요청을 http로 요청하더라도 브라우저가 자동으로 https로 요청한다.
https로 전송한 요청을 중간자가 가로채어 내용을 볼 수 있는(MIMT)기법을 클라이언트 레벨(브라우저)에서 차단이 가능하다.


SSL Strip Sniffing

 
HTTP 최초 접근 시 서버는 사용자를 HTTPS로 유도하지만 공격자가 서버로부터 전달받은 HTTPS를 HTTP로 변조하여
사용자에게 전달하는 공격이다. HTTP로 접근할 때, 302 Redirect 이면 주로 발생한다.


헤더

 Strict-Transport-Security: max-age=63072000;includeSubDomains;preload max-age=63072000 
 : 일정 시간(max-age)동안 https 접속을 강제화, 63072000은 2년을 의미한다. 
 includeSubdomains : 모든 서브도메인에 HSTS 규칙을 적용한다. 
 preload : 웹서버에서 HSTS를 응답 헤더로 제공하는건 최초 HTTP 연결 시 HSTS 헤더 수신 전에 SSL 스트립이 가능한 문제가 존재하므로 HSTS 적용이 클라이언트 단에서 preload로 적용되도록 설정하면 브라우저의 preload list에 추가된다.


서버단 설정

 // 사용자가 HTTPS로 요청했는지, 서버에서 HTTPS가 활성화되어 있는지 체크
 $is_https = (isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on')); 
 if(!$is_https){ 
 die('http://로 접속하실 수 없습니다.'); 
 }




ி X-XSS-Protection

 
XSS 공격 시도 시 브라우저의 내장 XSS Filter를 통해 XSS 공격을 방지한다.


헤더

 X-XSS-Protection: 0 
 X-XSS-Protection: 1 XSS 감지 시 자동으로 내용 치환 
 X-XSS-Protection: 1; mode=block 페이지 렌더링 차단 
 X-XSS-Protection: 1; report=<reporting-uri> 페이지 렌더링 차단 후 위반 사항보고(Chromium만 가능)



ி Cache-Control

 
웹 사이트가 SSL을 적용했어도 민감정보들이 브라우저에 캐시로 저장된다면 문제가 발생할 수 있다.
이 헤더는 cache 적용을 방지하는 헤더로서 개인정보가 포함된 로그인 페이지 등에 주로 사용된다.


헤더

 Cache-Control: no-cache, no-store, must-revalidate 
 // HTTP 1.1 Pragma: no-cache // HTTP 1.0 Expires: 0 // Proxies



ி 쿠키 조회 방지

 
개발자도구 > 애플리케이션 > JSESSIONID 값에서 HttpOnly가 설정된 경우 
document.cookie 값 조회가 되지않는다. 
 
HttpOnly는 서버로 요청 패킷을 보낼때만 쿠키 전송이 가능하도록 설정하는 옵션,
secure는 HTTPS 통신인 경우에만 쿠키 전송이 가능하다. 
 














반응형

'해킹-보안' 카테고리의 다른 글

NAC(Network Access Control) 우회  (0) 2021.05.13
nmap 포트스캔  (0) 2021.05.06
Fiddler Customize Rules  (1) 2021.04.12
xss-game level6  (0) 2021.04.06
CSP(Content-Security-Policy)  (0) 2021.03.19