보안을 강화하기 위해 사용해야 하는 8가지 HTTP 보안 헤더

게시 됨: 2022-04-08

HTTP 보안 헤더는 웹 보안의 가장 기본적이면서도 강력한 부분 중 하나입니다. 이러한 보안 조치의 도움으로 웹 애플리케이션 보안을 한 단계 더 높일 수 있습니다. 그것은 귀하의 웹사이트가 직면해야 하는 모든 공격으로부터 귀하의 웹사이트를 보호합니다.

이러한 HTTP 보안 헤더는 매우 강력하여 활성화하면 클릭재킹, 코드 삽입, 교차 사이트 스크립팅 등과 같은 몇 가지 일반적인 공격으로부터 웹 사이트를 보호합니다.

따라서 이 게시물에서는 HTTP 보안 헤더 목록에 대해 모두 설명하고 이 헤더가 어떻게 유용하며 어떻게 구현할 수 있는지 설명합니다.

계속 지켜봐 주시고 시작하겠습니다!

목차
HTTP 보안 헤더란 무엇입니까?
HTPP 보안 헤더를 구현해야 하는 이유는 무엇입니까?
보안 헤더 확인 실행
가장 중요한 HTTP 보안 헤더 목록
웹 사이트에서 HTTP 보안 헤더 취약점 수정을 구현하는 방법은 무엇입니까?
요약
자주 묻는 질문

HTTP 보안 헤더란 무엇입니까?

기본적으로 HTTP 보안 헤더는 HTTP 통신의 보안 관련 세부 정보를 지정하기 위해 웹 브라우저(또는 모든 웹 클라이언트)와 웹 서버 간에 교환되는 명령 또는 지시문 집합입니다. 이러한 정보 교환 또는 공유는 HTTP 프로토콜의 일부입니다. 이러한 명령이나 지시문은 웹사이트의 보안을 보장하고 맬웨어 주입을 방지하기 위해 브라우저에서 웹사이트에 대해 표시할 수 있는 항목을 알려줍니다.

이러한 HTTP 보안 헤더 명령은 해커의 공격이나 악성 코드 삽입 과 같은 보안 위협으로부터 웹 브라우저와 웹 사이트를 모두 보호하는 데 도움이 됩니다. 따라서 이 보안 전략은 전체 방어 시스템 역할을 합니다.

HTPP 보안 헤더를 구현해야 하는 이유는 무엇입니까?

이미 눈치채셨겠지만, 최근 몇 년 동안 사이버 공격과 데이터 유출 사건이 최고조에 달했다는 기사와 보고서가 인터넷에 떠돌고 있습니다. 그리고 이러한 모든 사고의 주요 원인 중 하나는 열악한 보안 조치와 잘못된 구성입니다.

이러한 HTTP 보안 헤더는 가장 일반적인 해커 공격, 맬웨어 주입, 클릭재킹, 악성 스크립트 주입 등을 중지하는 데 도움이 됩니다. 웹 응용 프로그램이 실행되는 동안 서버와 웹 브라우저 간의 일부 활동을 제한하여 추가 보호 계층을 제공합니다. 달리기.

많은 HTTP 헤더를 사용할 수 있지만 요점은 더 나은 보호를 위해 구현해야 하는 헤더입니다. 시간이 지남에 따라 변경되는 모든 웹 기술과 마찬가지로 새 HTTP 헤더는 브라우저의 지원에 따라 표시되고 이동합니다.

따라서 구현해야 할 HTTP 헤더와 구현하지 말아야 할 HTTP 헤더를 결정하는 것이 중요하지만 지금은 가장 일반적인 위협으로부터 보호할 수 있도록 이러한 8개의 HTTP 보안 헤더 목록을 구현해야 합니다.

그 외에도 HTTP 보안 헤더는 웹사이트 SEO 점수를 높이는 데도 도움이 됩니다.

보안 헤더 확인 실행

계속 진행하기 전에 가장 먼저 해야 할 일은 웹사이트에서 보안 헤더 검사를 실행하는 것입니다. 이를 통해 웹사이트에 누락된 필수 보안 헤더가 무엇인지 쉽게 확인할 수 있습니다.

그렇게 하려면 보안 헤더 웹사이트를 방문하여 아래 그림과 같이 웹사이트 주소를 입력해야 합니다.

Run HTTP security headers check

웹사이트 URL을 입력하고 스캔 버튼을 누르면 모든 중요한 누락된 HTTP 보안 헤더가 빨간색으로 표시되고 웹사이트가 얼마나 안전한지 보여주는 등급이 표시되는 종합 보고서가 생성됩니다.

HTTP security header scan results

위 이미지에서 HTTP 보안 헤더가 감지되지 않은 것을 볼 수 있습니다. 우리가 설명하고 아래 섹션에 나열했습니다.

가장 중요한 HTTP 보안 헤더 목록

보안을 강화하고 추가 보호 계층을 활성화하기 위해 웹 애플리케이션에서 구현해야 하는 가장 중요한 HTTP 보안 헤더를 확인해 보겠습니다.

1. X-프레임 옵션

Microsoft는 처음으로 Microsoft Internet Explorer에 X-Frame 옵션을 도입하여 악의적인 스크립트 삽입 또는 사이트 간 스크립팅 공격으로부터 보호합니다. 이 HTTP 보안 헤더는 브라우저가 iFrame을 웹사이트로 처리할지 여부를 묻도록 지시하여 웹사이트 iFrame을 보호합니다.

공격자가 링크 또는 버튼에 여러 레이어를 구현하여 사용자를 다른 페이지로 리디렉션하고 중요한 정보를 훔치는 모든 클릭재킹 공격으로부터 주로 보호합니다.

따라야 할 구문:

지침 설명:

DENY : 이 지시문은 iFrame이 렌더링하는 것을 허용하지 않습니다.

SAMEORIGIN: 이 지시문은 동일한 원점으로만 iFrame을 렌더링하도록 허용합니다.

ALLOW- FROM: 이 지시문은 특정 URL에서만 iFrame을 렌더링하도록 허용합니다.

2. 엄격한 운송 보안

Strict-Transport-Security 또는 HTTPS Strict Transport Security 헤더는 활성화된 경우 MIM 공격 및 쿠키 하이재킹으로부터 보호하는 데 도움이 됩니다. 이 지시문은 브라우저가 HTTP 통신이 아닌 HTTPS를 사용하도록 합니다.

HTTP에서 웹사이트를 실행하고 HTTPS로 마이그레이션한 경우 작동 방식을 이해해 보겠습니다. 이전 방문자는 여전히 HTTP를 사용하여 이전 URL에 액세스하려고 시도합니다. 웹사이트를 이미 HTTPS로 마이그레이션했으므로 이전 URL이 새 URL로 리디렉션됩니다.

그러나 요점은 방문자가 새 암호화된 URL로 리디렉션하기 전에 암호화되지 않은 버전의 웹사이트에 계속 액세스할 수 있다는 것입니다. 프로세스 사이에 해커는 MIM 또는 중간 공격을 수행할 기회를 얻습니다.

그러나 Strict-Transport-Security를 ​​활성화하면 브라우저는 HTTP 웹사이트를 로드하지 않고 HTTPS를 통해 통신하도록 브라우저에 지시를 받게 됩니다.

따라야 할 구문:

지침 설명

max-age=<expire-time> : 이 지시문을 사용하면 브라우저가 HTTPS를 통해 액세스할 수 있는 시간(초)을 결정할 수 있습니다.

최대 연령 = <만료 시간>; includeSubDomains : 이 지시문이 언급되면 위의 규칙이 웹사이트의 모든 하위 도메인에도 적용된다는 의미입니다.

최대 연령 = <만료 시간>; preload : 이 지시문은 웹사이트가 글로벌 HTTPS 사이트 목록에 나열되었음을 보여줍니다.

3. 콘텐츠 보안 정책

이 HTTP 보안 헤더는 정책에 언급된 콘텐츠만 로드하도록 브라우저에 지시합니다. 즉, 웹사이트의 리소스를 제어하고 브라우저가 허용 목록에 추가한 콘텐츠 리소스만 로드할 수 있는 권한이 있습니다.

브라우저가 스크립트, 이미지 또는 CSS와 같은 콘텐츠 리소스를 로드할 위치를 결정하는 데 도움이 됩니다. 이 HTTP 보안 헤더를 성공적으로 구현할 수 있다면 클릭재킹, XSS(교차 사이트 스크립팅) 및 모든 악성 코드 삽입으로부터 웹 사이트를 보호합니다.

100% 보호를 보장하지는 않지만 가능한 손상을 방지하고 제한하는 데 도움이 됩니다. 심지어 대부분의 브라우저는 이제 이 심각한 문제를 식별하고 지원하기 시작했습니다.

따라야 할 구문:

지시 설명

<policy-directive> : script-src(CSS) , img-src(이미지) 또는 style-src (스타일시트)와 같은 정책 지시문을 포함하고 로드하도록 허용할 수 있습니다.

4. X 콘텐츠 유형 옵션

이 유형의 헤더를 사용하면 MIME 유형이 서버에서 의도적으로 구성되었음을 브라우저에 알려 MIME 유형 스니핑을 제한하거나 방지할 수 있습니다. 기본적으로 MIME 스니핑에서는 공격자가 실행 가능한 악성 스크립트를 주입할 수 있는 기회를 제공합니다.

예를 들어, 공격자는 이미지를 말하는 무고한 다른 리소스의 응답을 변경한 악성 리소스를 주입했습니다. MIME 스니핑으로 인해 브라우저는 삽입된 악성 리소스의 실행을 시작하는 대신 이미지 콘텐츠 형식의 렌더링을 중지합니다.

이 헤더를 활성화하면 브라우저가 Content-type 헤더에 지정된 MIME 유형만 따르도록 위임하고 강제합니다. 이렇게 하면 악의적인 스크립트 삽입 또는 사이트 간 스크립팅 공격을 쉽게 보호하고 방지할 수 있습니다.

따라야 할 구문:

지시 설명:

nosniff 지시문은 요청 대상 유형이 다음과 같은 경우 즉시 요청을 차단합니다.

  • 스타일
  • MIME 유형이 텍스트/CSS 또는 유형 스크립트가 아닙니다.
  • MIME 유형은 JavaScript MIME 유형이 아닙니다.

5. 추천인 정책

이 헤더 보안을 통해 리퍼러 정보를 공개해야 하는지 여부를 제어할 수 있습니까? 그렇다면 얼마나.

그러나 다른 요청의 경우 브라우저는 원본에 대한 정보만 공유합니다.

따라야 할 구문:

지시 설명:

origin-when-cross-origin: 브라우저는 동일한 출처 요청 및 기타 요청에 대한 완전한 참조 정보를 공유하고 브라우저는 출처에 대해서만 공유합니다.

no-referrer-when-downgrade: 덜 안전한 대상에 대한 요청에 대한 Referrer 헤더를 보낼 때 브라우저는 참조 정보를 공유하지 않습니다.

6. 기능 또는 권한 정책

이 보안 헤더를 통해 웹사이트는 브라우저의 특정 기능이나 API에 대한 액세스를 제공할지 여부를 결정할 수 있습니다. 이 헤더를 사용하면 브라우저에서 모든 응용 프로그램의 기능을 쉽게 제어할 수 있습니다. 이 기능은 개인 정보를 침해할 수 있으며 합법적이고 필요한 경우에만 허용합니다.

예를 들어 웹사이트가 마이크, 웹캠 또는 위치에 액세스하는 것을 원하지 않고 아래 주어진 구문에 따라 기능을 제한하려는 경우:

따라야 할 구문:

지시 설명:

<지시어> 는 가속도계, 자동 재생, 주변광 센서, 배터리, 카메라, 마이크 또는 위치 정보와 같은 모든 것이 될 수 있습니다.

반면 <allowlist> 는 'none', 'self' 등과 같은 하나 이상의 값을 별도로 사용할 수 있는 출처 목록입니다. 참고로 여기에서 전체 지시문 및 허용 목록을 확인할 수 있습니다.

7. X-허용 교차 도메인

이 HTTP 보안 헤더를 사용하여 브라우저에 지침을 제공하고 도메인 간에서 오는 모든 요청을 제어할 수 있습니다. 이 헤더를 활성화하면 다른 도메인에서 가져온 불필요한 웹사이트 자산을 로드하도록 웹사이트를 제한하게 됩니다. 그래야 웹사이트 리소스를 효율적으로 사용할 수 있습니다.

이 보안 헤더는 선택 사항이며 필수는 아니지만 설치하고 활성화하는 것이 좋습니다.

따라야 할 구문:

8. XSS 보호

XSS 보호 또는 교차 사이트 스크립팅 보호 헤더는 교차 사이트 스크립팅 공격으로부터 보호하기 위해 도입되었습니다. 이러한 공격은 매우 일반적이고 효과적인 것으로 간주되므로 대부분의 웹 브라우저는 기본적으로 XSS 보호를 활성화합니다.

공격자가 트랜잭션 데이터, 개인 데이터 등과 같은 기밀 정보를 훔치기 위해 HTTP 요청 중에 악성 자바스크립트 코드를 삽입하여 웹사이트를 감염시키려고 할 때. 사이트 간 스크립팅 공격이 감지되면 XSS 보호 헤더가 필터링되어 중지됩니다. 즉시.

그러나 이 필터는 이전 브라우저에서만 사용할 수 있었고 이제 최신 브라우저에서는 필요하지 않습니다. 특히 이미 훌륭한 보안 정책을 구현했으며 방문자가 콘텐츠 보안 정책을 이해하지 못하는 이전 브라우저를 계속 사용하고 있는 경우를 대비하여 실행하는 것이 좋습니다.

따라야 할 구문:

설명:

0 - XSS 보호를 비활성화합니다.

1 – XSS 보호 활성화

1; mode=block – 사이트 간 스크립팅 공격이 감지되면 브라우저를 중지하여 웹 페이지를 완전히 로드합니다.

1; report=<reporting-uri> – XSS 공격이 감지되면 브라우저에서 안전하지 않은 부분을 차단하고 보고합니다.

웹 사이트에서 HTTP 보안 헤더 취약점 수정을 구현하는 방법은 무엇입니까?

웹 호스팅 서비스 공급자가 .htaccess 또는 wp-config.php 파일 두 파일 중 하나에 액세스할 수 있도록 허용하는 경우. 그런 다음 HTTP 보안 헤더를 아무 곳에나 추가하여 웹 사이트에 HTTP 보안 헤더 취약점 수정을 쉽게 구현할 수 있습니다.

WPOven 에서는 파일 관리자에 쉽게 액세스하고 .htaccess 파일을 편집할 수 있는 SSH 액세스를 제공합니다.

1단계 : 먼저 사이트에 대한 SSH 액세스를 활성화해야 합니다. 이렇게 하려면 WPOven 대시보드 에서 사이트에 액세스해야 합니다.

ssh 1 8 HTTP Security Headers You Must Use To Enhance Security

'도구' 섹션으로 이동합니다.

ssh 2 8 HTTP Security Headers You Must Use To Enhance Security

그런 다음 '도구' 섹션에서 페이지 하단의 'SSH 액세스 활성화' 버튼을 눌러야 합니다.

ssh 3 8 HTTP Security Headers You Must Use To Enhance Security

2단계 : 사이트에 대해 SSH 액세스가 활성화되면 사이트의 SFTP 로그인 자격 증명을 사용하여 Putty 또는 PenguiNet 과 같은 타사 애플리케이션을 통해 로그인할 수 있습니다.

그러나 File Zilla로 널리 알려진 FTP 클라이언트를 통해 직접 .htaccess 또는 wp-config.php 파일에 액세스할 수도 있습니다.

다음 단계를 따르기만 하면 됩니다.

  1. 먼저 FTP 클라이언트를 사용하여 WordPress 웹 사이트에 연결해야 합니다. 이렇게 하면 .htaccess 파일을 편집할 수 있습니다. 이 파일은 WordPress 웹사이트의 루트 디렉터리에서 찾을 수 있습니다.
  2. .htaccess 파일이 보이지 않는 경우 숨김 파일을 체크인할 수 있습니다.
  3. 특별한 편집기가 필요하지 않으며 메모장과 같은 텍스트 편집기에서 코드를 작성할 수 있습니다.
  4. 이 코드를 작성하고 .htaccess 파일에 추가해야 합니다. .htaccess 파일 끝에 추가하는 것이 좋습니다.
  5. 사이트를 찾으면 로컬 드라이브에 다운로드한 다음 텍스트 편집기에서 엽니다. 가장 간단한 옵션은 표준 메모장입니다. 파일 맨 아래에 다음 코드를 추가합니다.

속성, 지시문 및 값을 필요에 따라 변경하고 저장하고 업로드합니다.

또는 웹 서버 구성 파일에 액세스하여 이러한 보안 헤더를 적용할 수도 있습니다. 그러나 스스로 변경하고 싶지 않고 WPOven 클라이언트인 경우 지원 티켓을 열 수 있으며 신속하게 처리해 드립니다.

요약

위의 게시물에서 웹사이트에서 HTTP 보안 헤더를 활성화하는 것이 얼마나 중요한지 알 수 있습니다. 그리고 웹사이트 보안 강화를 어느 정도 제공합니다. 그러나 이러한 유가 증권은 사용 가능한 최신 및 고급 브라우저에서 기본적으로 구현되었습니다. 그러나 여전히 사용하지 말아야 할 이유가 없습니다.

웹 사이트 서버에 액세스할 수 없는 경우에는 어렵습니다. 항상 전문가에게 도움을 요청하는 것이 좋습니다. 웹 호스팅 제공업체에 연락하여 웹사이트에 HTTP 보안 헤더를 구현하도록 요청하는 것이 좋습니다.

자주 묻는 질문

HTTP 헤더는 안전합니까?

예, HTTP 보안 헤더는 가장 중요한 사이버 보안 강화 지침 중 하나입니다. HTTP 헤더의 전체 정보는 암호화됩니다.

보안을 추가하는 헤더는 무엇입니까?

웹사이트에 보안을 추가하는 헤더는 다음과 같습니다.
1. X-프레임 옵션
2. 엄격한 운송 보안
3. 콘텐츠 보안 정책
4. X 콘텐츠 유형 옵션
5. 추천인 정책
6. 기능 또는 권한 정책
7. X-허용 교차 도메인
8. XSS 보호

CSP 헤더란?

CSP 또는 콘텐츠 보안 정책 헤더는 정책에 언급된 콘텐츠만 로드하도록 브라우저에 지시합니다. 즉, 웹사이트의 리소스를 제어하고 브라우저가 허용 목록에 추가한 콘텐츠 리소스만 로드할 수 있는 권한이 있습니다.