Jak dodać nagłówki bezpieczeństwa HTTP w WordPress
Opublikowany: 2023-05-18WordPress to najpopularniejszy na świecie system zarządzania treścią (CMS), obsługujący ponad 43% wszystkich witryn internetowych.Jednak jego szerokie zastosowanie sprawia, że jest częstym celem hakerów.
Ataki siłowe, luki w zabezpieczeniach związane z przesyłaniem plików i ataki typu cross-site scripting przyczyniają się do ciągłego zagrożenia.
Na szczęście istnieje wiele sposobów na uczynienie witryny bezpieczniejszą i mniej podatną na ataki. I tu właśnie pojawiają się nagłówki HTTP.
Wdrażając nagłówki bezpieczeństwa HTTP, możesz ograniczyć działania, które przeglądarki i serwery mogą wykonywać w Twojej witrynie, i dodać dodatkową warstwę zabezpieczeń. Te nagłówki znacznie utrudniają atakującym wykorzystanie luk w zabezpieczeniach po stronie klienta.
W tym artykule omówimy, czym są nagłówki bezpieczeństwa HTTP i jak możesz je skutecznie wdrożyć na swojej stronie internetowej.
Czym dokładnie są nagłówki bezpieczeństwa HTTP?
Nagłówki bezpieczeństwa HTTP to grupa dyrektyw używanych przez aplikacje internetowe do implementacji zabezpieczeń w przeglądarkach internetowych. Nagłówki te są wymieniane między przeglądarką internetową (klientem) a serwerem w celu identyfikacji parametrów bezpieczeństwa komunikacji HTTP. Ta wymiana informacji mówi przeglądarce, jak ma się zachowywać podczas interakcji z Twoją witryną, i reguluje takie procesy, jak wyświetlanie błędów i zarządzanie pamięcią podręczną.
Oczywiście to dodatkowe bezpieczeństwo i wydajność w dużej mierze zależy od przeglądarki. Starsze przeglądarki internetowe nie będą miały tego samego poziomu bezpieczeństwa ani kompatybilności i mogą nie przetwarzać nagłówków bezpieczeństwa HTTP poprawnie, w pełni lub nawet wcale. Potencjalnie może to oznaczać, że pomimo wszystkich twoich wysiłków, aby pomóc odwiedzającemu zachować bezpieczeństwo, jego nieaktualna przeglądarka nadal naraża go na niebezpieczeństwo. Jako twórcy witryn internetowych powinniśmy zrobić wszystko, co w naszej mocy, ale zaakceptować fakt, że po stronie odwiedzającego to on ponosi odpowiedzialność za upewnienie się, że korzysta z aktualnego oprogramowania na swoim komputerze. Dopóki używają nowoczesnej, aktualnej przeglądarki internetowej, nasze nagłówki bezpieczeństwa HTTP będą działać z oprogramowaniem przeglądarki, aby zapewnić im bezpieczeństwo.
Naszym głównym zmartwieniem jest jednak to, aby nagłówki bezpieczeństwa HTTP chroniły witrynę przed typowymi atakami, takimi jak skrypty krzyżowe i ataki typu brute force.Najskuteczniejszym sposobem wdrożenia tych nagłówków jest ustawienie ich na koncie hostingowym WordPress (na poziomie serwera) i użycie zapory aplikacji internetowej na poziomie DNS, takiej jak Cloudflare.
Należy jednak pamiętać, że chociaż dodanie nagłówków bezpieczeństwa HTTP może pomóc w zwiększeniu bezpieczeństwa witryny, jest to tylko jeden z aspektów bezpieczeństwa witryny i należy go używać w połączeniu z innymi środkami bezpieczeństwa. Obejmuje to aktualizowanie aplikacji i wtyczek, szyfrowanie poufnych danych oraz tworzenie kopii zapasowych danych witryny i plików konfiguracyjnych.
Zanim omówimy różne metody dodawania nagłówków zabezpieczeń, przyjrzyjmy się szczegółowo każdemu nagłówkowi i zrozumiemy, dlaczego jest on ważny.Jeśli znasz już nagłówki zabezpieczeń, możesz przejść do poniższej sekcji.
Rodzaje nagłówków bezpieczeństwa HTTP WordPress
Istnieje kilka nagłówków bezpieczeństwa HTTP, których można użyć w witrynie WordPress w celu zwiększenia ochrony. Rzućmy okiem na niektóre z najważniejszych.
1. Nagłówek zabezpieczeń ochrony X-XSS
Ten nagłówek zabezpieczeń służy do konfigurowania skryptów krzyżowych (XSS), luki w zabezpieczeniach, która umożliwia nieuwierzytelnionym stronom trzecim wykonywanie kodu w imieniu innej witryny w przeglądarce.
Zapobiega wielu atakom XSS na Twoją witrynę, zatrzymując renderowanie witryny w przypadku wykrycia ataku. X-XSS wykorzystuje bezpieczniejszą opcję polegającą na całkowitym nie ładowaniu witryny, zamiast próbować wyleczyć stronę poprzez wymianę potencjalnie szkodliwych elementów.
Nagłówek może mieć jedną z tych kilku wartości:
- X-XSS-Protection: 0 Wyłącza filtrowanie XSS (niezalecane)
- X-XSS-Protection: 1 Włącza filtrowanie XSS, które jest zazwyczaj ustawieniem domyślnym w większości przeglądarek. W przypadku wykrycia ataku XSS przeglądarka usunie niebezpieczne części strony (sanityzacja).
- Ochrona X-XSS: 1; mode=block Włącza filtrowanie XSS, ale zamiast oczyszczać stronę, przeglądarka uniemożliwi renderowanie strony (zalecane)
- Ochrona X-XSS: 1; report=<reporting-uri> Włącza filtrowanie XSS. Przeglądarka oczyści stronę i zgłosi naruszenie, jeśli zostanie wykryty atak cross-site scripting.
2. Nagłówek zabezpieczeń opcji X-Frame
Nagłówek bezpieczeństwa X-Frame-Options może być używany do zapobiegania różnym atakom siłowym i atakom DDOS , ale jego najskuteczniejszym zastosowaniem jest zapobieganie cross-jackingowi ramek iframe i click-jackingowi w Twojej witrynie WordPress.Ten nagłówek pozwala zdecydować, czy strona w Twojej witrynie może zostać osadzona przy użyciu elementów iframe w przeglądarce.
Opcja X-Frame chroni Twoją witrynę przed kradzieżą kliknięć, zapobiegając wypełnianiu się ramek iframe Twoją witryną. Ma dwie różne dyrektywy do wyboru –DENY i SAMEORIGIN. Działa ze wszystkimi popularnymi przeglądarkami internetowymi, takimi jak Chrome, Safari, Firefox i Opera.
Opcje X-Frame: DENY
Opcje X-Frame: SAMEORIGIN
W przypadku określenia z DENY nagłówek X-Frame-Options spowoduje niepowodzenie, jeśli jakakolwiek przeglądarka spróbuje załadować stronę w ramce podczas ładowania z innych witryn. Próby wykonania tego również zakończą się niepowodzeniem po załadowaniu do elementu iframe z oryginalnej witryny. Z drugiej strony, jeśli określimy SAMEORIGIN , nadal możemy korzystać ze strony w ramce – o ile witryna zawierająca ją w ramce jest taka sama, jak ta obsługująca stronę.
Ten nagłówek jest szczególnie ważny w przypadku stron internetowych zawierających poufne informacje oraz stron zawierających osadzone informacje, takie jak bramki płatności i formularze.
3. Nagłówek HTTP Strict Transport Security (HSTS).
HTTP Strict-Transport-Security to nagłówek odpowiedzi bezpieczeństwa wysyłany z serwera WWW do przeglądarki internetowej użytkownika w celu poinformowania go, że dostęp do witryny powinien odbywać się wyłącznie za pośrednictwem protokołu HTTP, a nigdy za pośrednictwem niezaszyfrowanego protokołu HTTP.
Ten nagłówek zapewnia mechanizm wymuszający użycie protokołu HTTPS przez przeglądarkę , nawet jeśli użytkownik wpisze „http://” w pasku adresu lub kliknie łącze HTTP.Może również uniemożliwić użytkownikom ignorowanie wygasłych lub nieważnych certyfikatów SSL/TLS i innych ostrzeżeń przeglądarki. Wartość HSTS jest ustawiana dla każdej przeglądarki, która odwiedza witrynę. Nie jest ustawiany na maszynę.
Nagłówek HSTS zapewnia opcję uwzględnienia dowolnych subdomen – możesz użyć dyrektywy „includeSubDomains”, aby przyjąć ten sam poziom bezpieczeństwa z domeny głównej. Oznacza to, że wszelkie lokalne projekty z domeną (lub subdomenami) nie będą już dostępne przez HTTP, ponieważ przeglądarka zezwala tylko na ruch HTTPS.
Na przykład, jeśli masz nagłówki HSTS w witrynie example.com z niezbędną dyrektywą „includeSubdomains ”, po odwiedzeniu witryny example.com nie będziesz mieć dostępu do subdomen witryny example.com za pośrednictwem niezabezpieczonych połączeń. Dlatego bądź ostrożny, jeśli zdecydujesz się użyć „includeSubdomains” , może to mieć wpływ na inne Twoje domeny.
Gdy przeglądarka otrzyma nagłówek HSTS z witryny, zapamięta zasady HSTS przez określony czas i automatycznie zaktualizuje wszystkie przyszłe żądania do witryny do HTTPS. Pomaga to uniknąć ataków typu man-in-the-middle, podsłuchiwania i innych form manipulacji, zapewniając szyfrowanie całej komunikacji między przeglądarką a serwerem.
Składnia tego nagłówka to:
# Bez dyrektywy includeSubDomains <IfModule mod_headers.c> Zestaw nagłówków Strict-Transport-Security: „max-age=63072000;” </IfModule> # Z dyrektywą includeSubDomains <IfModule mod_headers.c> Zestaw nagłówków Strict-Transport-Security „max-age=31536000; includeSubDomains; wstępne ładowanie” </IfModule>
Dyrektywa max-age=<expire-time> określa czas (w sekundach), przez jaki przeglądarka powinna pamiętać, że dostęp do witryny jest możliwy tylko przy użyciu protokołu HTTPS. Na przykład w powyższym przykładzie maksymalny wiek jest ustawiony na dwa lata. Jeśli wybrałeś Servebolt CDN lub Accelerated Domains od Servbolt, automatycznie otrzymasz 1 rok długości HSTS.
4. Nagłówek polityki odsyłającej
Ten nagłówek HTTP kontroluje, ile informacji o stronie odsyłającej wysyłanych za pośrednictwem nagłówka strony odsyłającej powinno być dołączanych do żądań. Ogranicza ilość informacji wysyłanych, gdy odwiedzający witrynę kliknie łącze. Pomaga to zapobiegać wyciekowi poufnych informacji do innych witryn , takich jak adres URL strony z informacjami prywatnymi.
Może mieć kilka wartości — oto krótkie omówienie:
- no-referrer: Nagłówek Referer nigdy nie zostanie wysłany w żadnych okolicznościach.
- No-referrer-when-downgrade: nagłówek strony odsyłającej nie zostanie wysłany podczas nawigowania z witryny HTTPS do witryny HTTP.
- Pochodzenie: nagłówek strony odsyłającej będzie zawierał tylko źródło (schemat, host i port) strony odsyłającej.
- Origin-when-cross-origin: Nagłówek strony odsyłającej będzie zawierał pełny adres URL strony odsyłającej podczas nawigowania między stronami w ramach tego samego źródła i tylko źródło w przypadku nawigacji do innego źródła.
- Strict-origin: nagłówek strony odsyłającej będzie zawierał tylko źródło strony odsyłającej i nie będzie wysyłany w przypadku próśb o inne źródła.
- Strict-origin-when-cross-origin: Nagłówek strony odsyłającej będzie zawierał pochodzenie strony odsyłającej i nie będzie wysyłany w przypadku żądań z różnych źródeł, z wyjątkiem źródeł z tej samej witryny. Zalecamy korzystanie z tego ustawienia, ponieważ zachowuje użyteczność nagłówka, jednocześnie zmniejszając ryzyko wycieku danych.
- Niebezpieczny adres URL: nagłówek strony odsyłającej wyśle źródło, ścieżkę i ciąg zapytania podczas wykonywania dowolnego żądania, niezależnie od bezpieczeństwa.
Aby zapoznać się ze szczegółową dyskusją na temat nagłówka zasad dotyczących odsyłaczy, przeczytaj artykuł Google web.dev na temat najlepszych praktyk dotyczących zasad dotyczących odsyłaczy .
5. Nagłówek X-Content-Type-Options
Nagłówek X-Content-Type-Options jest wysyłany przez serwer w odpowiedzi HTTP w celu poinformowania przeglądarek o typach MIME. Celem tego nagłówka jest uniemożliwienie przeglądarkom interpretowania plików jako innego typu MIME niż określony w nagłówku.
Ten nagłówek może mieć pojedynczą wartość „nosniff”. Składnia jest następująca:
X-Content-Type-Options: nosniff
Jest bardzo skuteczny w walce z atakami typu MIME - użycie tego nagłówka bezpieczeństwa może uniemożliwić przeglądarce interpretację plików w nieoczekiwany sposób, co może prowadzić do luk w zabezpieczeniach. Na przykład, jeśli atakujący prześle plik z rozszerzeniem .jpg, ale który nie zawiera treści, ponieważ w rzeczywistości jest to skrypt, ustawienie nagłówka X-Content-Type-Options na „nosniff” uniemożliwi przeglądarce wykonanie skryptu, chroniąc w ten sposób użytkowników przed potencjalnymi naruszeniami.
6. Nagłówek polityki bezpieczeństwa treści(CSP).
Content-Security-Policy to nagłówek bezpieczeństwa używany do określania pochodzenia treści i zapewnia mechanizm dla treści, które mogą być ładowane i uruchamiane w witrynie internetowej lub aplikacji internetowej. Określając zestaw zasad, ten nagłówek może ograniczać typy zawartości dozwolone na stronie internetowej i łagodzić różne rodzaje zagrożeń bezpieczeństwa. Jest to dodatkowa warstwa zabezpieczeń przed atakami Cross-Site Scripting (XSS) i Data Injection, które są wykorzystywane do przestępstw, takich jak kradzież danych, niszczenie witryn i dystrybucja złośliwego oprogramowania.
Oprócz kontrolowania typów zasobów, które mogą być ładowane, nagłówek Content-Security-Policy zapewnia również sposób instruowania przeglądarki, jak powinna postępować w przypadku naruszenia zasad określonych w nagłówku. Na przykład zasada może określać, że jeśli zasób ją narusza, przeglądarka powinna opublikować ostrzeżenie lub zablokować ładowanie zasobu.
Aby zasady działały, serwer musi być skonfigurowany do zwracania nagłówka Content-Security-Policy. Możesz użyć nagłówka HTTP CSP, aby określić swoje zasady w następujący sposób:
Polityka bezpieczeństwa treści: polityka
Ta polityka jest ciągiem zawierającym dyrektywy zasad opisujące Twoją Politykę bezpieczeństwa treści. Na przykład możesz dodać następujące wiersze do pliku .htaccess, aby zaimplementować CSP.
<IfModule mod_headers.c> Zestaw nagłówków Content-Security-Policy "default-src https: 'unsafe-eval' 'unsafe-inline' 'self'; object-src 'self'; font-src https: data: 'self' http: fonts.googleapis. com themes.googleusercontent.com; connect-src https: wss: 'self'; img-src https: data: 'self' http: *.gravatar.com; worker-src blob: https: 'self' 'unsafe-inline ''unsafe-eval'; media-src https: blob: 'self'; style-src https: 'unsafe-eval' 'unsafe-inline' 'self' http: fonts.googleapis.com" </IfModule>
Jeśli wymuszasz CSP na stronie WordPress, powinieneś pamiętać, że „unsafe-inline” i „unsafe-eval” są potrzebne WordPressowi do prawidłowego działania. Powyższa konfiguracja jest dobrym punktem wyjścia dla większości stron WordPress. Istnieje jednak ryzyko związane z używaniem powyższej konfiguracji bez jasnego zrozumienia znaczenia poszczególnych sekcji. Oto zestawienie każdej dyrektywy:
- default-src – ta dyrektywa ustawia domyślną politykę dla wszystkich typów zasobów, chyba że zostaną one zastąpione innymi dyrektywami.W tym przypadku umożliwia ładowanie zasobów z tego samego źródła („self”), a także ze źródeł HTTPS i ze skryptów, które używają „unsafe-eval” lub „unsafe-inline”.
- object-src – Ta dyrektywa ogranicza typy obiektów, które mogą być osadzone na stronie, takie jak aplety Flash lub Java.Tutaj pozwala na ładowanie obiektów tylko z tego samego źródła („ja”).
- font-src – Ta dyrektywa ogranicza źródła, z których można ładować czcionki.W tym przypadku umożliwia ładowanie czcionek ze źródeł HTTPS, schematu URI danych oraz z tego samego źródła („własnego”) lub ze źródeł HTTP z Google Fonts i Google User Content.
- connect-src – Ta dyrektywa ogranicza źródła, które mogą być używane do żądań sieciowych, takich jak żądania AJAX lub WebSockets.W tym przypadku umożliwia nawiązywanie połączeń tylko przez HTTPS lub WebSockets i z tego samego źródła („własny”).
- img-src – Ta dyrektywa ogranicza źródła, z których można ładować obrazy.W tym przypadku umożliwia ładowanie obrazów ze źródeł HTTPS, schematu URI danych oraz z tego samego źródła („własnego”) lub ze źródeł HTTP z Gravatara.
- worker-src – Ta dyrektywa ogranicza źródła, z których można ładować pracowników sieciowych.W tym przypadku umożliwia ładowanie procesów roboczych tylko ze schematu identyfikatora URI obiektu blob, źródeł HTTPS i ze skryptów, które używają „unsafe-eval” lub „unsafe-inline”.
- media-src – Ta dyrektywa ogranicza źródła, z których można ładować zasoby multimedialne, takie jak audio lub wideo.W tym przypadku umożliwia ładowanie multimediów tylko ze źródeł HTTPS, schematu identyfikatora URI obiektu blob iz tego samego źródła („self”).
- style-src – Ta dyrektywa ogranicza źródła, z których można ładować arkusze stylów.Tutaj umożliwia ładowanie stylów ze źródeł HTTPS i ze skryptów, które używają „unsafe-eval” lub „unsafe-inline”, a także z tego samego źródła („self”) i ze źródeł HTTP z Google Fonts.
Używając nagłówka CSP z instancją WordPress, należy pamiętać, żenieprawidłowe zastosowanie nagłówków CSP spowoduje uszkodzenie pulpitu administratora WordPress, ponieważ niektóre wtyczki i usługi mogą polegać na JavaScript innej firmy.
Aby to naprawić, musisz ręcznie dodać każdą regułę bezpieczeństwa do pliku nagłówkowego. Alternatywnym, ale mniej bezpiecznym sposobem jest wyłączenie nagłówka CSP w panelu administratora. Na przykład oto, co robimy na servebolt.com :
Zestaw nagłówków X-Frame-Options SAMEORIGIN Zestaw nagłówków Referrer-Policy strict-origin-when-cross-origin Zestaw nagłówków X-XSS-Protection "1; tryb = blok" <Jeśli "%{REQUEST_URI} !~ /wp-admin/"> # dodaj tylko nagłówek, jeśli nie ekran administratora Nagłówek zawsze ustawia Content-Security-Policy "default-src" self "unsafe-inline"; script-src "self" "unsafe-inline" "unsafe-eval" *.intercomcdn.com cdn.firstpromoter.com servebolt.containers .piwik.pro *.intercom.io cdn.getreplybox.com platform.twitter.com v0.wordpress.com cdn.jsdelivr.net servebolt.piwik.pro ; media-src 'self' *.intercomcdn.com data: ; img -src 'self' 'unsafe-inline' *.intercom.io *.intercomcdn.com *.intercomassets.com dane: raskesider.raskesider.no *.servebolt.com secure.gravatar.com servebolt.piwik.pro ; połącz- src 'self' ws: nexus-websocket-a.intercom.io *.piwik.pro servebolt.piwik.pro *.intercom.io ; font-src 'self' *.intercomcdn.com data: ; frame-src 'self ' app.getreplybox.com platform.twitter.com player.vimeo.com wordpress.org www.youtube.com caniuse.bitsofco.de video.wordpress.com *.intercom.io; przodkowie ramek „ja” *.servebolt. com;manifest-src 'ja' ;" </Jeśli>
Podczas wymuszania CSP w swojej witrynie należy pamiętać, że może to spowodować uszkodzenie środowiska programistycznego, jeśli nie używasz protokołu HTTPS. Jeśli nie jesteś pewien, jak wygenerować polisę dla swojej witryny, powinieneś skorzystać z narzędzia graficznego, takiego jak ValidBot – CSP Wizard lub Report URI: Generator CSP .
7. Nagłówek polityki uprawnień
Polityka uprawnień zapewnia programistom mechanizmy umożliwiające wyraźne deklarowanie, jakie funkcje można, a jakich nie można zaimplementować na stronie internetowej .Zarządza zestawem uprawnień wymaganych przez witrynę. Ten nagłówek służy do ograniczenia możliwości strony internetowej w celu zapobieżenia pewnym zagrożeniom bezpieczeństwa i prywatności, takim jak nadużywanie interfejsów API Javascript, śledzenie użytkowników i wykonywanie zainfekowanego kodu.
Polityka uprawnień pozwala serwerowi określić, czy funkcja może być używana w określonym dokumencie. Wykorzystujelisty dozwolonych – listę źródeł, która przyjmuje określone predefiniowane wartości.Wartość nagłówka Permission-Policy składa się z rozdzielonej przecinkami listy nazw dyrektyw i ich wartości opisujących różne uprawnienia wymagane przez witrynę internetową.
Ogólna składnia nagłówka Permissions-Policy wygląda następująco:
Polityka uprawnień: <dyrektywa>=<lista dozwolonych>
Na przykład, jeśli musimy zablokować cały dostęp do geolokalizacji, zrobilibyśmy to:
Polityka uprawnień: geolokalizacja=()
Tutaj symbol () oznacza pustą listę dozwolonych. Aby umożliwić dostęp do podzbioru źródeł, zrobilibyśmy to:
<IfModule mod_headers.c> Nagłówek zawsze ustawia Permissions-Policy "geolocation=(self 'https://abc.example.com' 'https://pqr.example.com'), midi=(), sync-xhr=(), accelerometer=( ), żyroskop=(), magnetometr=(), kamera=(), mikrofon=(), pełny ekran=(ja)" </IfModule>
Weźmy inny przykład. Następująca wartość nagłówka ogranicza witrynę do wykonywania skryptów tylko wtedy, gdy są one obsługiwane z tego samego źródła co dokument główny:
Zasady uprawnień: script-src „self”
Nagłówek Permissions-Policy może zastąpić lub uzupełnić tradycyjny nagłówek Content-Security-Policy, który zapewnia podobną funkcjonalność, ale z inną składnią i mniejszym zakresem uprawnień.Ten nagłówek jest obecnie technologią eksperymentalną , która jest obsługiwana tylko w Google Chrome i innych przeglądarkach opartych na Chromium.Zapewnia potężniejszy i bardziej elastyczny mechanizm kontrolowania uprawnień, aw przyszłości oczekuje się, że jego popularność wzrośnie. Jeśli chcesz sam to wypróbować, możesz użyć generatora nagłówków zasad uprawnień, aby łatwo wygenerować zasady uprawnień.
Dodawanie nagłówków bezpieczeństwa HTTP za pomocą pliku .htaccess
Sposób, w jaki zalecamy dodawanie nagłówków bezpieczeństwa HTTP, polega na bezpośredniej edycji pliku .htaccess. Jest to plik konfiguracyjny serwera najczęściej używany przez serwery WWW Apache. Edytując ten plik, zapewniasz, że nagłówki bezpieczeństwa HTTP w WordPress są skonfigurowane na poziomie serwera.
Aby skorzystać z tej metody, musisz mieć dostęp do pliku.htaccessswojej witryny. Można uzyskać do niego dostęp na serwerach Apache za pomocą klienta FTP.Przed wprowadzeniem jakichkolwiek zmian zdecydowanie zaleca się wykonanie kopii zapasowej bieżącego pliku .htaccess.
Najpierw po prostu zaloguj się do swojej witryny za pomocą klienta FTP lub narzędzia do zarządzania plikami w panelu sterowania hostingu. W folderze głównym swojej witryny zlokalizuj plik.htaccessi kliknij prawym przyciskiem myszy opcję „Edytuj”. Spowoduje to otwarcie pliku w edytorze tekstu.Aby dodać nagłówki bezpieczeństwa HTTPS do swojej witryny, możesz dodać odpowiedni kod na dole pliku .htaccess.
Poniższy przykładowy kod może służyć jako punkt wyjścia.Ustawia najczęściej używane nagłówki bezpieczeństwa HTTP z zalecanymi ustawieniami.
<IfModule mod_headers.c> Zestaw nagłówków Strict-Transport-Security „max-age=31536000; includeSubDomains; preload” env=HTTPS Zestaw nagłówków X-XSS-Protection "1; tryb = blok" Zestaw nagłówków X-Content-Type-Options „nosniff” Zestaw nagłówków X-Frame-Options DENY Zestaw nagłówków Referrer-Policy „no-referrer-when-downgrade” Zestaw nagłówków Content-Security-Policy "default-src https: 'unsafe-eval' 'unsafe-inline' 'self'; object-src 'self'; font-src https: data: 'self' http: fonts.googleapis. com themes.googleusercontent.com; connect-src https: wss: 'self'; img-src https: data: 'self' http: *.gravatar.com; worker-src blob: https: 'self' 'unsafe-inline ''unsafe-eval'; media-src https: blob: 'self'; style-src https: 'unsafe-eval' 'unsafe-inline' 'self' http: fonts.googleapis.com" Nagłówek zawsze ustawia Permissions-Policy "geolocation=(self 'https://abc.example.com' 'https://pqr.example.com'), midi=(), sync-xhr=(), accelerometer=( ), żyroskop=(), magnetometr=(), kamera=(), mikrofon=(), pełny ekran=(ja)" </IfModule>
Po dodaniu powyższej konfiguracji do pliku .htaccess odpowiednie nagłówki zostaną zastosowane do wszystkich żądań sieciowych.
Możesz sprawdzić, czy nagłówki są używane, otwierając kartę „Sieć” w Chrome DevTools i sprawdzając nagłówki odpowiedzi swojego żądania.
Po dodaniu kodu zapisz zmiany i ponownie odwiedź witrynę, aby upewnić się, że działa ona zgodnie z oczekiwaniami. Należy również zachować ostrożność podczas edytowania pliku .htaccess, ponieważ nieprawidłowe nagłówki kodu lub literówki mogą powodować błędy, takie jak 500 Internal Server Error .
Dodawanie nagłówków bezpieczeństwa HTTP w WordPress za pomocą sieci dystrybucji treści (CDN)
Sieć dostarczania treści (CDN) to grupa rozproszonych geograficznie serwerów, które zapewniają buforowaną zawartość internetową z lokalizacji sieciowej najbliższej użytkownikowi w celu poprawy wydajności sieci. Popularne sieci CDN, takie jak Cloudflare,umożliwiają również dodawanie nagłówków HTTP do witryny.
Weźmy Cloudflare jako przykład i zobaczmy, jak możemy dodać nagłówki HTTP za pomocą CDN. Cloudflare oferuje podstawową bezpłatną zaporę sieciową wraz z usługą CDN, ale bardziej zaawansowane funkcje bezpieczeństwa są zablokowane za zaporą płatną.
Konfigurowanie Cloudflare w witrynie WordPress jest dość łatwe. Możesz zarejestrować się ręcznie w witrynie Cloudflare i postępować zgodnie z instrukcjami wyświetlanymi na ekranie, aby ją włączyć. Po aktywowaniu Cloudflare w Twojej witrynie przejdź do strony SSL/TLS na pulpicie nawigacyjnym swojego konta Cloudflare.
Następnie musisz przejść do zakładki „Certyfikaty brzegowe” i zlokalizować sekcję HTTP Strict Transport Security (HSTS), a następnie kliknąć opcję „Włącz HSTS”. Po włączeniu przycisku „Włącz HSTS” pojawi się okno z instrukcjami, które pomogą Ci włączyć tę funkcję w Twojej witrynie. Kliknij przycisk „Dalej”, aby kontynuować proces, a zobaczysz opcję dodania nagłówków bezpieczeństwa HTTP.
W tym miejscu możesz włączyć HSTS w swojej witrynie, a także zdecydować się na zastosowanie HSTS do subdomen korzystających z HTTPS. Korzystanie z tej metody zapewni Twojej witrynie podstawową ochronę za pomocą nagłówków bezpieczeństwa HTTP, ale wadą jest to, że Cloudflare nie pozwala obecnie dodawać opcji X-Frame.
Warto zauważyć, że dla servebolt.com i innych domen w Cloudflare HSTS jest domyślnie włączony.
Dodawanie nagłówków bezpieczeństwa HTTP za pomocą wtyczki WordPress
Trzecią metodą dodawania i konfigurowania nagłówków HTTP jest użycie wtyczki. Chociaż jest to jeden z najłatwiejszych sposobów dodawania nagłówków HTTP Security do witryny WordPress, zwykle jest nieco mniej skuteczny niż ręczna konfiguracja nagłówków.
Być może już przeczytałeś gdzie indziej, że wiele wtyczek bezpieczeństwa zawiera opcję dodawania nagłówków bezpieczeństwa. Odradzamy jednak używanie wtyczki zabezpieczającej. Przeczytaj nasz artykuł na temat wtyczek zabezpieczających WordPress, aby zrozumieć, dlaczego i jakie są obawy związane z ich używaniem.
Ta sekcja pozwoli ci włączyć lub wyłączyć różne nagłówki i ustawić dla nich różne parametry. Dokładne nagłówki, które możesz włączyć, będą się różnić w zależności od wybranej wtyczki, ale popularne, takie jak X-XSS-Protection, X-Content-Type-Options, X-Frame-Options i Strict-Transport-Security są objęte większość wtyczek.
Jak sprawdzić nagłówki bezpieczeństwa HTTP w swojej witrynie
Po dodaniu nagłówków bezpieczeństwa HTTP w witrynie WordPress musisz upewnić się, że są one poprawnie skonfigurowane i działają zgodnie z oczekiwaniami. Możesz użyć jednego z wielu bezpłatnych narzędzi dostępnych w Internecie, aby przeprowadzić test. Zalecamy korzystanie z nagłówków zabezpieczeń lub laboratoriów SSL , które zapewniają łatwy sposób testowania konfiguracji i sprawdzania, czy wszystkie nagłówki zabezpieczeń działają poprawnie.
Narzędzia te ocenią nagłówki bezpieczeństwa Twojej witryny i sporządzą szczegółowy raport. Informują również, które nagłówki bezpieczeństwa HTTP wysyła Twoja witryna, a które nie. Twoja witryna otrzyma wtedy ocenę od A+ do F wraz z wyjaśnieniem, w jaki sposób została ona ustalona.
Na przykład podczas testowania witryny Vogue'a stwierdziliśmy, że brakuje w niej wielu ważnych nagłówków HTTP, więc uzyskała tylko ocenę C.
I, jak można się spodziewać, testując naszą własną stronę internetową – otrzymuje ona ocenę A+.
Wniosek
Nie ma wątpliwości, że wdrożenie nagłówków HTTP jest niezbędnym krokiem w kierunku zabezpieczenia witryny. Po pomyślnym dodaniu nagłówków HTTP do swojej witryny należy wykonać kilka dodatkowych czynności:
- Testowanie pod kątem luk : ważne jest, aby przetestować witrynę pod kątem typowych luk w zabezpieczeniach, takich jak skrypty między witrynami (CSS) i fałszowanie żądań między witrynami (CSRF).W tym celu można skorzystać z narzędzi takich jak OWASP ZAP i Burp Suite .
- Monitoruj zmiany : musisz regularnie monitorować nagłówki pod kątem nieoczekiwanych zmian, ponieważ zwykle wskazuje to na próby wykorzystania luki w zabezpieczeniach.
- Aktualizuj nagłówki : w miarę pojawiania się nowych zagrożeń ważne jest, aby być na bieżąco z najnowszymi praktykami bezpieczeństwa i odpowiednio aktualizować nagłówki.
Interesuje Cię hosting zarządzany, który jest empirycznie szybszy?
Wypróbuj nasze podejście do hostingu WordPress – rozpoczęcie jest bezpłatne, a korzyści obejmują:
- Skalowalność: w testach rzeczywistego obciążenia użytkownika, Servebolt zapewniał średni czas odpowiedzi 65 ms, 4,9x szybszy czas odpowiedzi niż drugi najlepszy.
- Najszybsze globalne czasy ładowania: średni czas ładowania strony wynoszący 1,26 sekundy stawia nas na szczycie listy globalnych wyników WebPageTest.
- Najszybsza prędkość obliczeniowa: serwery Servebolt zapewniają niespotykane wcześniej prędkości baz danych, przetwarzając 2,44 razy więcej zapytań na sekundę niż średnia i uruchamiając PHP 2,6 razy szybciej niż drugi najlepszy!
- Doskonałe bezpieczeństwo i dyspozycyjność: dzięki 100% bezawaryjnej pracy na wszystkich monitorach i ocenie A+ naszej implementacji SSL możesz mieć pewność, że Twoja witryna jest online i bezpieczna.
Krótko mówiąc, pozwalając nam zdjąć hosting z twojego talerza – ułatwisz poprawę bezpieczeństwa, szybkości i wydajności swojej witryny. Zarejestruj się w Servebolt, aby nas przetestować.