Przejdź do treści

Ustawienia plików cookie

Prosimy wybrać, na które rodzaje plików cookie Państwo zezwalają. Wybór można zmienić w dowolnym momencie w Ustawieniach plików cookie na dole każdej strony. Polityka prywatności

Niezbędne

Zawsze włączone

Potrzebne do logowania, zachowania koszyka i zapamiętania wyborów. Są zawsze włączone.

Jakie pliki cookie?
  • weboke_sessie, weboke_klant, weboke_remember: sesja i pozostanie zalogowanym
  • weboke_basket: koszyk
  • wkBtwIncl: wyświetlanie cen z VAT lub bez VAT
  • wok_cookies: wybór dotyczący plików cookie, 12 miesięcy

Mierzą, która reklama prowadzi do odwiedzin lub zamówienia, abyśmy nie płacili za reklamy, które nic nie dają.

Jakie pliki cookie?
  • Google Ads przez Google Tag Manager (_gcl_au, _gcl_aw), do 90 dni
  • OpenAI Ads, reklamy w ChatGPT
  • wok_aff: przez którego partnera trafili Państwo do nas (program partnerski), 60 dni

4,6

Kraj i język

Każdy kraj ma własną stronę z cenami i stawką VAT tego kraju.

Wyświetl

Państwa strona internetowa: https, HSTS i nagłówki bezpieczeństwa

Moduł 4: E-mail, strona internetowa i domena · Czas czytania: 11 minut

Cel lekcji: Po tej lekcji będą Państwo potrafili sprawdzić podstawowe zabezpieczenia swojej strony internetowej: ważny certyfikat, przekierowanie na https, HSTS z odpowiednią wartością max-age, najważniejsze nagłówki bezpieczeństwa oraz aktualizację swojego CMS.
Kluczowe pojęcia: certyfikat TLS, https, przekierowanie na https, HSTS, max-age, includeSubDomains, preload, nagłówek HTTP, Content-Security-Policy, X-Content-Type-Options, frame-ancestors, X-Frame-Options, Referrer-Policy

Co się dzieje, gdy ktoś otwiera Państwa stronę

Gdy klient wpisze example.com w pasku adresu, przeglądarka żąda strony od Państwa serwera www. Ta komunikacja odbywa się przez HTTP. Przy https wokół niej znajduje się szyfrowane połączenie: TLS. W tym celu Państwa strona potrzebuje certyfikatu TLS (często nadal nazywanego certyfikatem SSL). Certyfikat potwierdza, że serwer rzeczywiście należy do example.com, a szyfrowanie zapewnia, że nikt po drodze nie może podsłuchiwać ani niczego zmieniać. Jest to ważne w publicznej sieci wifi, gdzie nie wiedzą Państwo, kto zarządza siecią (lekcja 5.3).

Przy każdej odpowiedzi serwer, oprócz samej strony, wysyła szereg nagłówków: krótkich linijek z informacjami i instrukcjami dla przeglądarki. Nie widać ich na ekranie, ale w dużej mierze decydują o tym, jak bezpiecznie przeglądarka traktuje Państwa stronę. Część tych nagłówków to nagłówki bezpieczeństwa. W tej lekcji omówimy cztery warstwy: certyfikat, przekierowanie, HSTS i nagłówki. Następnie krótko zajmiemy się aktualizacją samej strony internetowej.

Warstwa 1: ważny certyfikat

Certyfikat jest w porządku, jeśli spełnia trzy warunki:

  1. nie jest przeterminowany;
  2. został wydany przez zaufanego wystawcę (urząd certyfikacji znany przeglądarkom, taki jak Let's Encrypt lub podmiot komercyjny);
  3. obowiązuje dla dokładnie tej nazwy, którą otwiera odwiedzający: example.com oraz www.example.com, jeśli Państwo korzystają z obu.

Niemal każdy dostawca hostingu obecnie zapewnia darmowy certyfikat, który jest automatycznie odnawiany. Jeśli coś pójdzie nie tak, zwykle wynika to z tego, że nazwa domeny wskazuje na inny serwer, albo rekord CAA blokuje danego wystawcę (lekcja 4.3).

Ważne, aby wiedzieć: kłódka nie mówi nic o wiarygodności strony. Oznacza jedynie, że połączenie jest zaszyfrowane i że certyfikat odpowiada nazwie w pasku adresu. Strony phishingowe na mijnbank-veilig.example mają równie dobrze kłódkę. Dlatego w lekcji 3.2 uczą się Państwo odczytywać domenę.

Warstwa 2: zawsze przekierowanie na https

Sam certyfikat nie wystarczy. Ktoś, kto otworzy http://example.com, na przykład przez stary link lub wpisując samą nazwę, powinien zostać automatycznie przekierowany na wersję https. Nazywa się to przekierowaniem (redirect, zwykle z kodem statusu 301).

Prawidłowa kolejność wygląda tak:

http://example.com      ->  https://example.com
https://example.com     ->  https://www.example.com   (tylko jeśli www jest Państwa adresem głównym)
http://www.example.com  ->  https://www.example.com

Proszę zwrócić uwagę na pierwszą linijkę: z http przekierowują Państwo najpierw na https na tej samej nazwie, a dopiero potem ewentualnie na www. Dzięki temu przeglądarka może odebrać instrukcję HSTS również z nazwy bez www. Internet.nl sprawdza dokładnie to.

Częstym błędem jest podwójne przekierowanie: w panelu hostingowym oraz we wtyczce lub w pliku .htaccess. Może to spowodować nieskończoną pętlę ("zbyt wiele przekierowań"). Proszę skonfigurować to w jednym miejscu.

Warstwa 3: HSTS

Przekierowanie ma słaby moment: pierwsze żądanie wciąż przechodzi nieszyfrowane przez http. Napastnik w tej samej sieci może przechwycić to jedno żądanie i utrzymać odwiedzającego na podrobionej, nieszyfrowanej wersji strony. Do tego służy HSTS (HTTP Strict Transport Security, RFC 6797).

Przy HSTS Państwa strona wysyła przez https dodatkowy nagłówek:

Strict-Transport-Security: max-age=31536000; includeSubDomains

Przeglądarka zapamiętuje wtedy: "tę stronę otwieraj wyłącznie przez https, przez najbliższe 31 536 000 sekund (rok)". Jeśli odwiedzający wpisze później http://example.com, przeglądarka sama zamieni to na https, zanim cokolwiek zostanie wysłane przez sieć. Słabe pierwsze żądanie znika.

ElementZnaczenie
max-age=Jak długo przeglądarka to pamięta, w sekundach. Internet.nl uznaje co najmniej rok (max-age=31536000) za wystarczające; krótki okres nie chroni osób, które odwiedzają Państwa stronę jedynie od czasu do czasu.
includeSubDomainsObowiązuje również dla wszystkich subdomen, takich jak shop.example.com i mail.example.com.
preloadWnioskują Państwo o umieszczenie na liście wbudowanej w przeglądarki (hstspreload.org). Wtedy chronione jest nawet pierwsze w ogóle odwiedzenie strony. Wymagania obejmują między innymi max-age wynoszące co najmniej rok, includeSubDomains oraz wszystkie subdomeny działające na https. Usunięcie z listy trwa długo.
max-age=0Usuwa zapamiętaną instrukcję.

Trzy rzeczy, które warto wiedzieć, zanim włączą Państwo HSTS:

  • Najpierw https musi działać wszędzie. Przeglądarka, która zapamiętała HSTS i napotyka błąd certyfikatu, nie pokazuje odwiedzającemu przycisku, by mimo to kontynuować (RFC 6797, paragraf 12.1). Jeśli Państwa certyfikat wygaśnie albo nie pasuje do www, strona będzie dla tych odwiedzających niedostępna, dopóki problem nie zostanie rozwiązany.
  • includeSubDomains dotyczy wszystkiego pod Państwa domeną. Stare subdomeny bez certyfikatu, na przykład strona drukarki lub kamery na camera.example.com, po włączeniu tej opcji nie będzie już dostępna.
  • Wprowadzajcie Państwo to stopniowo. Proszę zacząć od krótkiego max-age (na przykład jednego dnia), sprawdzić, czy wszystko działa, a następnie zwiększać je stopniowo do roku. Przy każdym kroku proszę odczekać cały ten okres.

Nagłówek HSTS otrzymany przez zwykłe http jest ignorowany przez przeglądarkę. Widać go zatem jedynie w odpowiedzi https.

Warstwa 4: nagłówki bezpieczeństwa

Oprócz HSTS istnieje kilka nagłówków, które informują przeglądarkę, co wolno jej robić z Państwa stronami, a czego nie. Nie muszą Państwo mieć ich wszystkich idealnie skonfigurowanych, ale pierwsze trzy są proste i bezpieczne.

NagłówekPrzed czym chroniDobra wartość
X-Content-Type-OptionsPrzeglądarka sama zgaduje, czym jest dany plik, przez co przesłany "obrazek" może zostać wykonany jako skrypt.nosniff (jedyna prawidłowa wartość)
Content-Security-Policy: frame-ancestors ... lub X-Frame-OptionsClickjacking: inna strona ładuje Państwa stronę niewidocznie w ramce i pozwala odwiedzającym niepostrzeżenie klikać na Państwa przyciski.frame-ancestors 'self' lub 'none'; starszy nagłówek X-Frame-Options: SAMEORIGIN lub DENY
Referrer-PolicyPrzy przejściu na inną stronę przeglądarka wysyła adres poprzedniej strony. Może on zawierać wrażliwe informacje, takie jak wyszukiwana fraza czy numer zamówienia.no-referrer lub same-origin (surowe), strict-origin-when-cross-origin (powszechne, internet.nl wyświetla tu ostrzeżenie)
Content-Security-Policy (pełna)Ogranicza, z jakich miejsc mogą być ładowane skrypty, style i obrazy. Znacznie utrudnia wstrzyknięcie złośliwych skryptów (XSS).Rozwiązanie dopasowane do konkretnej strony. Proszę unikać unsafe-inline, unsafe-eval i symboli wieloznacznych.

Pełna Content-Security-Policy jest najskuteczniejsza, ale też najtrudniejsza: zbyt restrykcyjna reguła może zepsuć Państwa statystyki, przycisk płatności lub okno czatu. Dzięki wariantowi Content-Security-Policy-Report-Only mogą Państwo najpierw zmierzyć, co zostałoby zablokowane, bez psucia czegokolwiek. Proszę pozostawić to swojemu twórcy strony internetowej lub zacząć jedynie od frame-ancestors.

Samodzielne sprawdzenie nagłówków

Proszę otworzyć swoją stronę w przeglądarce, nacisnąć F12 (lub wybrać "Zbadaj"), przejść na kartę Sieć, ponownie załadować stronę i kliknąć pierwsze żądanie. Pod "Nagłówki odpowiedzi" (Response Headers) widoczne jest wszystko, co wysyła serwer. Da się to zrobić także z poziomu wiersza poleceń:

curl -sI https://example.com/

Sama strona internetowa: CMS, wtyczki i motywy

Najlepsze nagłówki nie pomogą, jeśli oprogramowanie stojące za Państwa stroną jest dziurawe. Większość zhakowanych stron małych firm nie została zaatakowana przez serwer www, lecz przez przestarzałą wtyczkę, motyw, który od lat nie był aktualizowany, lub słabe hasło administratora.

  • Proszę włączyć automatyczne aktualizacje dla swojego CMS (na przykład WordPress, Joomla lub innego systemu) oraz dla wtyczek, jeśli to możliwe.
  • Proszę usunąć wtyczki i motywy, których Państwo nie używają; samo wyłączenie nie wystarczy, pliki nadal tam są.
  • Do logowania administratora proszę stosować silne, unikalne hasło oraz uwierzytelnianie dwuskładnikowe (moduł 2), a także ograniczyć liczbę prób logowania.
  • Proszę utrzymywać wersję PHP (lub innego języka) Państwa pakietu na poziomie, który nadal otrzymuje aktualizacje (lekcja 5.1).

W praktyce: tak to wygląda

W DirectAdmin, panelu, z którego korzysta WebOké, przy swojej domenie najpierw włączają Państwo Bezpieczny SSL, a następnie Wymuś SSL z przekierowaniem https. W tym samym miejscu znajduje się przełącznik dla HSTS; proszę włączyć go dopiero wtedy, gdy certyfikat działa dla wszystkich nazw. U innych dostawców działa to podobnie, albo konfigurują to Państwo w ustawieniach swojego CMS.

Jeśli Państwa strona działa na Apache lub LiteSpeed, nagłówki można również umieścić w pliku .htaccess:

<IfModule mod_headers.c>
  Header always set Strict-Transport-Security "max-age=31536000"
  Header always set X-Content-Type-Options "nosniff"
  Header always set Content-Security-Policy "frame-ancestors 'self'"
  Header always set Referrer-Policy "strict-origin-when-cross-origin"
</IfModule>

Proszę dodać includeSubDomains dopiero wtedy, gdy mają Państwo pewność, że każda subdomena obsługuje https. Po każdej zmianie proszę sprawdzić wynik za pomocą testu strony internetowej internet.nl lub narzędzi deweloperskich przeglądarki.

Podsumowanie

  • Kłódka oznacza: szyfrowane i właściwa nazwa. Nie oznacza: wiarygodne.
  • Zawsze przekierowują Państwo http na https, najpierw na tej samej nazwie, i robią to w jednym miejscu.
  • HSTS sprawia, że przeglądarka zapamiętuje, iż Państwa strona działa wyłącznie przez https; internet.nl uznaje max-age wynoszące co najmniej rok (31536000) za dobre. Proszę włączyć to dopiero, gdy https działa wszędzie, i wprowadzać stopniowo.
  • X-Content-Type-Options: nosniff, frame-ancestors (lub X-Frame-Options) oraz Referrer-Policy są proste; pełna Content-Security-Policy wymaga indywidualnego podejścia.
  • Aktualizacje Państwa CMS, wtyczek i motywów są co najmniej tak samo ważne jak nagłówki.

Quiz

1. Czemu dokładnie zapobiega HSTS?



2. Włączają Państwo Strict-Transport-Security: max-age=31536000; includeSubDomains. Tydzień później wygasa certyfikat shop.example.com. Co zauważą stali odwiedzający?



3. Jaką minimalną wartość max-age internet.nl uznaje za wystarczającą dla HSTS?



4. Przed czym chroni Content-Security-Policy: frame-ancestors 'self'?



5. Widzą Państwo kłódkę przy mijnbank-veilig.example w pasku adresu. Co dzięki temu wiedzą Państwo na pewno?



Zadanie

Zadanie A4.2: Sprawdzanie https, HSTS i nagłówków swojej strony internetowej. Proszę wpisać nazwę domeny swojej strony internetowej (jeśli Państwo jej nie mają, proszę użyć internet.nl). Program otwiera http:// i https:// Państwa domeny i sprawdza certyfikat, przekierowanie na https, HSTS oraz nagłówki bezpieczeństwa. Przy każdym punkcie otrzymają Państwo kolor zielony, pomarańczowy lub czerwony wraz z wyjaśnieniem.

Zadanie A4.2: Sprawdzanie https, HSTS i nagłówków swojej strony internetowej

Proszę wpisać nazwę domeny swojej strony internetowej (jeśli Państwo jej nie mają, proszę użyć internet.nl). Program otworzy http:// i https:// Państwa domeny i sprawdzi certyfikat, przekierowanie na https, HSTS oraz nagłówki bezpieczeństwa. Następnie proszę wpisać wartość max-age dla HSTS.



Wprowadzone dane i wyniki sprawdzania nie są zapisywane. Przeglądarka zapamiętuje udzielone odpowiedzi oraz informację, czy zadanie zostało zaliczone. Po zalogowaniu w Moje kursy zapisywana jest jedynie informacja, że zadanie zostało zaliczone (lub prawie zaliczone); tam można ją również usunąć.

Zadanie D4.2: Aktualizacja i porządkowanie strony internetowej. Proszę zalogować się do panelu zarządzania swoją stroną internetową, sprawdzić wersję swojego CMS, wtyczek i motywów, usunąć to, czego Państwo nie używają, i włączyć automatyczne aktualizacje tam, gdzie to możliwe. Proszę odhaczyć listę kontrolną i odpowiedzieć na pytanie refleksyjne.

Zadanie D4.2: Aktualizacja i porządkowanie strony internetowej

Jak się do tego zabrać: (1) Proszę zalogować się do panelu zarządzania stroną internetową (lub poprosić twórcę strony o wspólne wykonanie tego). (2) Proszę zanotować wersję CMS i sprawdzić, czy są dostępne aktualizacje. (3) Proszę wykonać kopię zapasową (lekcja 6.1), zainstalować aktualizacje CMS, wtyczek i motywów. (4) Proszę usunąć nieużywane wtyczki i motywy. (5) Proszę włączyć automatyczne aktualizacje tam, gdzie to możliwe. (6) Proszę sprawdzić, jakie konta administratora istnieją, i usunąć konta osób, które już nie pracują w firmie. (7) Proszę włączyć uwierzytelnianie dwuskładnikowe (2FA) dla każdego konta administratora.




Zaznaczenia i notatki pozostają tylko w tej przeglądarce; nie są nigdzie wysyłane. Po zalogowaniu w Moje kursy zapisywana jest jedynie informacja, że zadanie zostało wykonane.

Więcej informacji

Kroki opisane w artykułach WebOké dotyczą środowiska WebOké; u innych dostawców działa to w podobny sposób.

Chwileczkę…

Konfiguracja domen

Dla każdej domeny można ustawić serwery nazw, powiązanie z hostingiem oraz to, kto zostanie właścicielem.

Wczytywanie domen…