HTTP 헤더 설정 방법

천천히 업데이트 하겠습니다.

HTTP Headers 플러그인은 서버와 클라이언트 간의 통신에서 중요한 역할을 하는 HTTP 헤더를 설정하고 관리할 수 있게 해 줍니다. 각각의 HTTP 헤더는 특정한 목적을 가지고 있으며, 주로 보안, 성능, 콘텐츠 전송과 관련된 설정들을 다룹니다. 주요 HTTP 헤더를 설명하자면 다음과 같습니다.

Security

X-Frame-Options

사이트가 다른 웹페이지에 iframe으로 포함되는 것을 제어하는 헤더입니다. “DENY(완전 차단)”, “SAMEORIGIN(같은 도메인에서만 허용)”, “ALLOW-FROM(특정 도메인에서만 허용)” 중에서 선택할 수 있으며, 클릭재킹(clickjacking)1 공격을 방지하는 데 도움을 줍니다.

X-XSS-Protection

브라우저의 기본 XSS(Cross Site Scripting) 필터링 기능을 활성화하는 헤더입니다. “0(XSS 필터링 비활성화)”, “1(XSS 필터링 활성화)”, “1; mode=block(XSS 필터링 활성화 & 감지시 랜더링 차단)”, “1; report(XSS 필터링 활성화 & 웹 서버에 보고)” 중에서 보통 “1; mode=block“로 설정하여, XSS 공격2이 탐지되면 페이지 로딩을 차단합니다.

X-Content-Type-Options

X-Content-Type-Options 헤더는 브라우저가 MIME 형식3을 임의로 해석하는 것을 방지하여 XSS(Cross-Site Scripting) 공격과 같은 보안 취약점을 줄이는데 사용됩니다. MIME 스니핑4은 공격자가 악의적인 코드를 포함한 파일의 MIME 형식을 조작하여 XSS 공격을 수행하는 데 악용될 수 있습니다. “nosniff” 로 설정 시 브라우저에게 MIME 스니핑을 하지 않고, 서버에서 전달된 Content-Type 헤더의 정보를 그대로 따르도록 지시합니다.

Referrer-Policy

웹사이트는 Referer 헤더를 통해 사용자가 어떤 경로를 통해 해당 페이지에 도달했는지 분석하여 사용자 행동 패턴을 파악하고 맞춤형 광고를 제공할 수 있습니다. 반면에 Referer 헤더에 민감한 정보가 포함될 경우, 이를 악용하여 사용자를 추적하거나 웹사이트에 대한 공격을 시도할 수 있습니다. Referrer-Policy는 이러한 Referer 헤더의 정보 노출 위험을 완화하기 위해 도입되었으며, 브라우저는 해당 정책에 따라 Referer 헤더에 포함되는 정보를 제한할 수 있습니다. “no-referrer(Referer 헤더 제거)”, “no-referrer-when-downgrade(HTTPS에서 HTTP로 이동할 때만 Referer 헤더 제거)”, “origin(프로토컬, 도메인, 포트 정보만 전송)”, “origin-when-cross-origin(다른 도메인으로 이동할 때만 origin 정보 전달)”, “strict-origin(orign과 유사하나 서브프레임5에서 Referer 전송 제한)”, “strict-origin-when-cross-origin(다른 도메인으로 이동할 때만 프로토콜, 도메인, 포트 정보만 전송. 단 서브프레임에서의 Referer 전송 제한)”, “same-origin(같은 도메인 내에서만 Referer 헤더를 전송)” 중에서 주로 “strict-origin-when-cross-origin“을 많이 설정합니다. 개인정보보호와 보안을 적절히 조절하면서 웹 분석에도 활용할 수 있는 균형 잡힌 옵션입니다.

  1. 클릭재킹(Clickjacking)은 웹사이트 사용자를 속여 자신도 모르게 악성 링크를 클릭하도록 하는 인터페이스 기반 공격입니다. 클릭재킹을 통해, 공격자는 악성 링크를 웹사이트의 버튼이나 합법적인 페이지에 삽입합니다. (참조) ↩︎
  2. XSS 공격은 대상 사이트에 악의적인 스크립트를 삽입하여 해당 스크립트가 사용자의 브라우저에서 동작하도록 하는 것으로 사용자의 개인정보 및 쿠키정보를 탈취하고 악성코드 감염, 웹페이지 변조 등의 공격을 수행하며 좀비 PC공격, 쿠키 탈취를 통한 세션 하이재킹 공격 등을 한다. (참조) ↩︎
  3. 인터넷 상에서 다양한 종류의 데이터를 식별하기 위한 표준입니다. 예를 들어, HTML 문서는 text/html, 이미지 파일은 image/jpeg 등의 MIME(Multipurpose Internet Mail Extensions) 형식을 가집니다. ↩︎
  4. 브라우저가 서버에서 전달된 Content-Type 헤더의 정보 없이, 파일의 내용을 분석하여 MIME 형식을 추측하는 행위를 말합니다. ↩︎
  5. 하나의 HTML 문서 안에 또 다른 HTML 문서를 포함시켜, 마치 작은 창처럼 보이게 하는 것을 말합니다. 마치 큰 창 안에 작은 창을 띄워 놓은 것과 같이, 하나의 웹 페이지 내에서 여러 개의 웹 페이지를 동시에 보여줄 수 있는 기능입니다. ↩︎