HTTP 헤더값에는 다양한 내용이 포함되어 있다.
1. Content-Security-Policy
XSS과 연관된 공격의 피해를 최소화 할 수 있으며, 스크립트를 허용할 url(신뢰할 수 있는 url)을 헤더에 설정하는 옵션
사용 예는 다음과 같다.
- Content-Security-Policy: script-src https://test.com
2. X-Frame-Options
clickjacking(사용자의 클릭을 훔쳐 엉뚱한 곳을 클릭하게 만드는 공격 기법) 방지 기능 포함
사용 방법은 다음과 같이 3가지가 있다.
- X-Frame-Options : DENY (모두 표시 거부)
- X-Frame-Options : SAMEORIGIN (같은 origin 일 경우에만 허용)
- X-Frame-Options : ALLOW FROM http://sample.com (지정한 orgin에 한하여 허용)
3. X-Content-Type-Options
jpg 확장자로 js 파일을 올려 우회를 한 후에 script 태그에 src로 넣는 수법을 방지하는 헤더
이 헤더를 넣으면 MIMETYPE과 다르게 사용하지 못하게 한다. nosciff 를 넣어주면 활성화된다.
사용 예는 다음과 같다.
- X-Content-Type-Options: nosniff
4. (HTTP) Strict-Transport-Security (HSTS)
해당 해더를 받게 되면 브라우저는 다음에 사이트에 접속할 때 https:// 를 붙이지 않더라도 웹브라우저가 https 로 접속하는 기능이다. 이와 같은 방법으로 SSL http, SSL strip 공격을 피할 수 있게된다.
사용방법은 아래와 같다. includeSubDomains 를 넣어주면 서브도메인들에도 적용이된다.
- Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
5. Cashe control
악의적인 사용자가 브라우저 히스토리를 악용 할 수 있기 때문에 브라우저가 웹페이지 컨텐츠를 캐싱하지 않도록 설정한다.
사용 예는 다음과 같다.
- Cache-Control: no-cache
6. X-XSS-Protection
웹 브라우저의 내장 XSS Filter를 사용하도록 하는 옵션
사용 예는 다음과 같다.
- X-XSS-Protection; 1; mode=block
참고
- https://jaewoongmoon.wordpress.com/2016/07/08/http-%EC%9D%91%EB%8B%B5-%EB%B3%B4%EC%95%88-%ED%97%A4%EB%8D%94%EC%99%80-%EC%8A%A4%ED%94%84%EB%A7%81-security-%EC%84%A4%EC%A0%95/
- https://www.kjwon15.net/wordpress/articles/computer/security/288