WordPress에서 HTTP 보안 헤더 구성

게시 됨: 2022-02-23

대부분의 최신 브라우저는 다양한 HTTP 보안 헤더를 지원하여 WordPress 웹사이트의 보안을 개선하고, 클릭재킹, 사이트 간 스크립팅 및 기타 일반적인 공격과 같은 브라우저 공격 클래스로부터 방문자를 더 잘 보호하며, 사이트 방문자의 개인 정보를 개선할 수도 있습니다. 온라인.

이 기사에서는 이러한 HTTP 보안 헤더가 무엇인지에 대한 개요를 제공하고 작동 방식과 범위를 설명합니다. 또한 이러한 HTTP 보안 헤더를 웹사이트에 추가하여 WordPress 웹사이트의 보안을 향상시키는 방법도 설명합니다.

어쨌든 HTTP 보안 헤더는 무엇입니까?

HTTP 보안 헤더는 일련의 HTTP 헤더입니다. 1 웹 클라이언트(브라우저)와 웹 서버 간에 교환되는 웹 클라이언트와 서버 간의 HTTP 통신 보안 관련 설정을 지정하는 데 사용되는 웹 클라이언트. WordPress 웹사이트에서 보안 헤더를 활성화하면 XSS(교차 사이트 스크립팅) 및 클릭재킹을 비롯한 일반적인 공격에 대한 웹사이트의 복원력이 향상될 수 있습니다.

HTTP 보안 헤더가 WordPress 보안을 향상시키는 방법

HTTP 보안 헤더는 브라우저에 다양한 보안 기능을 적절하게 활성화하도록 지시하여 WordPress 웹사이트의 보안을 개선하는 데 도움이 될 수 있습니다. 많은 경우에 올바른 헤더를 구현하는 것은 까다로운 일이며 이전 브라우저에서는 다른 결과(또는 완전히 비효율적)일 수도 있습니다. 따라서 변경 사항을 적용하기 전에 테스트 또는 스테이징 환경에서 변경 사항을 시도하는 것이 가장 좋습니다. 라이브 WordPress 사이트.

가장 일반적으로 사용되는 HTTP 보안 헤더

어떤 헤더가 무엇을 합니까? 가장 중요하고 일반적으로 사용되는 HTTP 보안 헤더에 대한 개요를 살펴보겠습니다.

엄격한 운송 보안

Strict-Transport-Security HTTP 헤더는 브라우저에 HSTS(HTTP Strict Transport Security) 2 를 적용하도록 지시합니다. . HSTS 헤더는 사용자(또는 메시지 가로채기 공격을 실행하려는 공격자)가 HTTP를 통해 사이트에 액세스하려고 하는 경우에도 방문하는 브라우저에 항상 HTTPS(HTTP 대신)를 통해 사이트에 액세스하도록 지시합니다. 브라우저는 HTTP를 사용할 수 없는 경우에도 강제로 HTTPS로 전환합니다. 그런 정도까지는 HTTPS가 활성화되어 있고 혼합 콘텐츠 문제 없이 완전히 올바르게 작동하는 경우에만 HSTS를 활성화해야 합니다. 3 .

다음 HSTS(HTTP Strict Transport Security) HTTP 응답 헤더는 1년(31536000초) 동안 HSTS를 활성화합니다.


Strict-Transport-Security: max-age=31536000

콘텐츠 보안 정책

Content-Security-Policy HTTP 보안 헤더는 강력한 기능과 구성 가능성을 가진 HTTP 헤더입니다. XSS(교차 사이트 스크립팅) 및 데이터 삽입 공격과 같은 공격을 감지하고 완화하는 데 도움이 되는 추가 보안 계층을 제공하는 최신 브라우저에서 볼 수 있는 보안 기능 집합인 브라우저의 콘텐츠 보안 정책(CSP)을 구성합니다.

콘텐츠 보안 정책(CSP)은 올바른 CSP 설정이 문제의 웹사이트에 따라 매우 광범위하고 배포 전에 철저히 테스트해야 하기 때문에 올바르게 적용하기 까다롭기로 악명이 높습니다. -보고 전용 4 CSP 테스트용으로만 사용되는 HTTP 헤더입니다.

다음은 웹사이트가 제공되는 원본에서만 자산을 로드하도록 허용하는 매우 간단한 CSP(콘텐츠 보안 정책) 정책의 예입니다.


Content-Security-Policy: default-src 'self'

그러나 CSP(콘텐츠 보안 정책)는 이 간단한 예에 표시된 것보다 훨씬 더 구성할 수 있습니다. CSP에는 브라우저가 자산(예: CSS, 이미지 및 글꼴)을 로드할 수 있는 소스를 지정하기 위해 script-src , style-srcimg-src 와 같은 다른 지시문이 포함되어 있습니다. CSP 구성 방법에 대한 전체 목록은 콘텐츠 보안 정책 빠른 참조 지침을 참조하세요.

X-콘텐츠 유형-옵션

X-Content-Type-Options HTTP 보안 헤더는 MIME 유형 스니핑의 결과로 발생하는 XSS(교차 사이트 스크립팅) 공격을 방지하는 모든 주요 브라우저에서 준수하는 비표준 헤더입니다. 5 . 존재하는 경우 이 헤더는 브라우저에 Content-Type HTTP 헤더에 정의된 MIME 유형을 엄격하게 따르도록 지시하고 브라우저가 응답 데이터 자체에 대한 올바른 MIME 유형을 감지하려고 시도하지 않아야 함을 알려줍니다. 헤더에는 nosniff라는 단일 지시문이 있습니다.


X-Content-Type-Options: nosniff

오래되거나 사용되지 않는 HTTP 보안 헤더

또한 오래되고 사용되지 않는 HTTP 보안 헤더가 많이 있습니다. 임시 수정, 실험 또는 비표준 이니셔티브로 도입되어 더 이상 사용되지 않거나 완전히 대체되었기 때문에 더 이상 사용되지 않거나 더 이상 작동하지 않습니다. 다음은 이러한 HTTP 보안 헤더의 목록입니다.

HTTP 보안 헤더가 Content-Security-Policy로 대체됨

X-프레임-옵션

X-Frame-Options HTTP 보안 헤더는 XSS(교차 사이트 스크립팅), 클릭재킹 및 iframe 내부에 배치되는 웹사이트에 의존하는 기타 공격.

이 헤더는 이제 frame-ancestors CSP(콘텐츠 보안 정책) 지시문으로 대체되었습니다. X-Frame-Options 대신에 frame-ancestors 지시문과 함께 CSP를 사용하는 것이 좋습니다.

X-XSS-보호

X-XSS-Protection HTTP 보안 헤더는 XSS(교차 사이트 스크립팅) 공격에 대한 브라우저 보호를 활성화하거나 비활성화하기 위해 도입된 비표준 헤더입니다. 실제로 이 헤더는 공격자가 우회하기 쉬운 경우가 많았고 결과적으로 대부분의 최신 브라우저에서 무시되었습니다.

공개 키 핀

TLS 인증서 스푸핑을 방지하기 위해 Google Chrome 및 Firefox에 도입된 HPKP(공개 키 고정) 보안 기능을 구성하는 데 사용되는 Public-Key-Pins HTTP 보안 헤더입니다. HPKP는 웹 서버가 웹 사이트에서 사용된 TLS 인증서 공개 키의 암호화 해시 세트를 브라우저에 제공하도록 하여 작동했으며, 브라우저는 이 해시를 차례로 사용하여 후속 요청에서 서버로부터 받은 인증서와 비교합니다. 문제는 HPKP가 관리하기가 상당히 복잡하고 웹 사이트 액세스를 완전히 비활성화할 수 있는 잘못된 구성이 자주 발생하므로 더 이상 사용하지 않는 것이 좋습니다.

WordPress에 HTTP 보안 헤더 추가

HTTP 보안 헤더는 웹 서버 또는 해당되는 경우 CDN(콘텐츠 전송 네트워크) 또는 웹 응용 프로그램 방화벽에 구성될 때 가장 잘 작동합니다. 이렇게 하면 각 요청에 따라 보낼 수 있습니다. 또는 덜 이상적이지만 WordPress 플러그인을 사용하여 이러한 헤더를 설정할 수 있습니다.

이제 HTTP 보안 헤더의 목적을 다루었으므로 WordPress 웹 사이트에서 이를 활성화할 수 있는 몇 가지 방법이 있습니다.

Apache HTTP Server를 사용하여 WordPress에 HTTP 보안 헤더 추가

다음은 HSTS(HTTP Strict Transport Security), X-Content-Type-Options 및 간단한 콘텐츠 보안 정책을 활성화하는 데 필요한 Apache HTTP Server 구성의 예입니다.


<ifModule mod_headers.c>
Header set Strict-Transport-Security "max-age=31536000"
Header set X-Content-Type-Options "nosniff"
Header set Content-Security-Policy "default-src 'self'"
</ifModule>

Nginx를 사용하여 WordPress에 HTTP 보안 헤더 추가

마찬가지로 다음은 HSTS(HTTP Strict Transport Security), X-Content-Type-Options 및 간단한 콘텐츠 보안 정책을 활성화하는 데 필요한 Nginx 구성의 예입니다.


server {
add_header Strict-Transport-Security "max-age=31536000; always;
add_header X-Content-Type-Options "nosniff" always;
add_header Content-Security-Policy "default-src 'self'" always;
}

플러그인을 사용하여 WordPress에 HTTP 보안 헤더 추가

또는 헤더를 수정하기 위해 WordPress 자체에 의존하기 때문에 덜 효과적이지만 WordPress 플러그인을 사용하는 것이 WordPress 웹 사이트에 HTTP 보안 헤더를 추가하는 가장 쉬운 방법일 수 있습니다. 리디렉션 플러그인과 같은 플러그인을 사용하면 웹사이트에 사용자 정의 HTTP 헤더를 추가할 수 있습니다.

웹 사이트의 HTTP 보안 헤더를 확인하는 방법

WordPress 웹 사이트에 HTTP 보안 헤더를 추가하면 올바르게 구성되고 예상대로 작동하는지 확인하고 싶을 것입니다. 이것을 테스트하는 가장 쉬운 방법은 Security Header 6 이라는 무료 도구를 사용하는 것입니다. .

보안 헤더 도구를 사용하는 것은 웹사이트 URL을 입력하고 "스캔"을 누르기만 하면 됩니다. 그런 다음 A+에서 F까지의 등급과 해당 등급이 어떻게 결정되었는지에 대한 설명이 제공됩니다.

이 문서에 사용된 참조 [ + ]

이 문서에 사용된 참조
1 https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers
2 https://owasp.org/www-project-secure-headers/#http-strict-transport-security
3 https://web.dev/what-is-mixed-content/
4 https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only
5 https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types#mime_sniffing
6 https://securityheaders.com/