Czytelnicy tacy jak ty pomagają wspierać MUO. Kiedy dokonujesz zakupu za pomocą linków na naszej stronie, możemy otrzymać prowizję partnerską.

Kiedy chcesz odwiedzić stronę internetową, przeglądarka internetowa, której używasz, otrzymuje pewne dane z tej strony. W rezultacie dochodzi do dialogu między Twoim urządzeniem a witryną. Dzieje się tak z protokołem o nazwie HTTP. Poprzez interwencję w ten dialog możliwe jest podjęcie dodatkowych środków bezpieczeństwa.

Jeśli prowadzisz stronę internetową lub planujesz karierę jako programista stron internetowych, nagłówki bezpieczeństwa HTTP są dla Ciebie nieocenione, ponieważ odgrywają aktywną rolę w bezpieczeństwie zarówno użytkownika, jak i strony internetowej.

Co to jest HTTP Strict-Transport-Security (HSTS)?

HTTP Strict Transport Security (HSTS) zmusza użytkowników do korzystania z HTTPS przy każdym żądaniu wysyłanym w przeglądarce. Jest to solidny sposób na zwalczanie cyberataków, takich jak obniżenie wersji, oraz zapewnienie bezpieczeństwa całego ruchu.

instagram viewer

Aktywacja HSTS jest dość łatwa. Rozważ dialog między klientem a serwerem. Kiedy próbujesz uzyskać dostęp do witryny za pośrednictwem przeglądarki, jesteś klientem. Witryna, którą chcesz otworzyć, zależy od serwera. Twoim celem jest poinformowanie serwera „Chcę otworzyć tę witrynę”. To jest operacja żądania. Serwer natomiast przekieruje Cię na stronę, jeśli spełnisz żądane warunki.

Pamiętaj o tym w odniesieniu do tej przykładowej flagi nagłówka HTTP:

Strict-Transport-Security: max-age=16070200;

Gdy dodasz tę flagę do informacji nagłówka odpowiedzi HTTP, wszystkie żądania generowane przez użytkowników staną się HTTPS. Cokolwiek użytkownik tu napisze, przeglądarka automatycznie oceni protokół jako HTTPS i nawiąże bezpieczne połączenie.

Jak korzystać z HSTS

Zamiast dodawać wszystkie te informacje nagłówka HTTP w warstwie kodu, możesz to zrobić w Apache, IIS, Nginx, Tomcat i innych aplikacjach serwera WWW.

Aby włączyć HSTS w Apache:

LoadModule headers_module module/mod_headers.so
<Wirtualny Host *:443>
Nagłówek zawsze ustawićŚcisły-Transport-Bezpieczeństwo "maksymalny wiek=2592000; dołącz subdomeny"
</VirtualHost>

Aby włączyć HSTS w Nginx:

add_header Strict-Transport-Security max-age=2592000; zawierać subdomeny

Aby włączyć HSTS z IIS web.config:

<system.webServer>
<httpProtokół>
<niestandardowe nagłówki>
<dodaj nazwę="Ścisłe bezpieczeństwo transportu" wartość="maksymalny wiek=63072000"/>
</customHeaders>
</httpProtocol>
</system.webServer>

Dla użytkowników Cloudflare

Cloudflare zapewnia bezpłatną usługę HTTPS dla wszystkich dzięki usłudze Keyless SSL; przed złożeniem wniosku o preload HSTS powinieneś wiedzieć, że Twój certyfikat nie należy do Ciebie. Wiele witryn korzysta z certyfikatów SSL ponieważ są prostym sposobem na zapewnienie bezpieczeństwa danych.

Jednak teraz Cloudflare obsługuje funkcję HSTS. Możesz aktywować wszystkie funkcje HSTS, w tym wstępne ładowanie, za pośrednictwem interfejsu internetowego Cloudflare bez konieczności zmagania się z konfiguracją na serwerze internetowym.

Co to są opcje X-Frame?

X-Frame-Options to nagłówek bezpieczeństwa obsługiwany przez wszystkie nowoczesne przeglądarki. X-Frame-Options ma na celu ochronę przed kradzieżą kliknięć, taką jak Clickjacking. Jak sama nazwa wskazuje, chodzi o działanie wrażliwej ramki inline, znanej również jako ramka iframe. Są to elementy w witrynie, które osadzają inną stronę HTML w witrynie „nadrzędnej”, dzięki czemu można korzystać z treści z innych źródeł w witrynie. Ale atakujący używają ramek iframe pod własną kontrolą, aby zmusić użytkowników do wykonywania działań, których nie chcą.

Z tego powodu musisz uniemożliwić atakującym znalezienie ramek iframe w witrynie.

Gdzie i jak używać opcji X-Frame?

To, co robi X-Frame-Options, niektórzy programiści próbują zrobić z językami takimi jak JavaScript. To nie jest całkowicie błędne. Jednak nadal istnieje ryzyko, ponieważ kody napisane w wielu aspektach to za mało. Rozsądnie byłoby więc pozostawić to zadanie używanej przeglądarce internetowej.

Jednakże, jako programista, istnieją trzy parametry, które należy wiedzieć o X-Frame-Options:

  • Zaprzeczyć: Całkowicie zapobiegaj wywoływaniu strony w dowolnym elemencie iframe.
  • SAME POCHODZENIE: zapobiegaj wywoływaniu przez domenę inną niż Twoja w obrębie elementu iframe.
  • ZEZWÓL OD uri: Akceptuj wywołania iframe o identyfikatorze URI podanym jako parametr. Blokuj innych.

Tutaj SAME POCHODZENIE funkcja wyróżnia się bardziej. Ponieważ chociaż możesz wywoływać aplikacje w swoich różnych subdomenach za pomocą elementów iframe wewnątrz siebie, możesz uniemożliwić ich wywoływanie w domenie pod kontrolą atakującego.

Oto przykłady wykorzystania SAMEORIGIN i X-Frame-Options z NGINX, Apache i IIS:

Używanie X-Frame-Options SAMEORIGIN dla Nginx:

add_header X-Frame-Opcje SAMEORIGIN;

Używanie X-Frame-Options SAMEORIGIN dla Apache:

Nagłówek zawsze dołącza X-Frame-Options SAMEORIGIN

Używanie X-Frame-Options SAMEORIGIN dla IIS:

<httpProtokół>
<niestandardowe nagłówki>
<dodaj nazwę="Opcje X-Frame" wartość="SAME POCHODZENIE" />
</customHeaders>
</httpProtocol>

Samo dodanie samego nagłówka SAMEORIGIN zapewni większe bezpieczeństwo odwiedzającym.

Co to jest ochrona X-XSS?

Korzystanie z informacji nagłówka X-XSS-Protection może chronić użytkowników przed atakami XSS. Po pierwsze, musisz wyeliminować Luki XSS po stronie aplikacji. Po zapewnieniu bezpieczeństwa opartego na kodzie, wymagane są dalsze środki, tj. nagłówki X-XSS-Protection, przeciwko lukom XSS w przeglądarkach.

Jak korzystać z ochrony X-XSS

Nowoczesne przeglądarki mogą wykrywać potencjalne ładunki XSS poprzez filtrowanie treści generowanych przez aplikacje. Funkcję tę można aktywować za pomocą informacji nagłówka X-XSS-Protection.

Aby włączyć nagłówek X-XSS-Protection w Nginx:

add_header X-Frame-X-XSS-Ochrona 1;

Aby włączyć nagłówek X-XSS-Protection w Apache:

Nagłówek zawsze dołączaj X-XSS-Protection 1

Aby włączyć nagłówek X-XSS-Protection w usługach IIS:

<httpProtokół>
<niestandardowe nagłówki>
<dodaj nazwę="Ochrona X-XSS" wartość="1" />
</customHeaders>
</httpProtocol>

Aby domyślnie uniemożliwić uruchomienie bloku kodu z atakiem XSS, możesz użyć czegoś takiego:

Ochrona X-XSS: 1; tryb = blok

Tę drobną zmianę należy wprowadzić, jeśli istnieje potencjalnie niebezpieczna sytuacja i chcesz zapobiec renderowaniu całej zawartości.

Co to są opcje X-Content-Type-Options?

Przeglądarki wykonują analizę zwaną MIME Type Sniffing na treściach prezentowanych im przez aplikację internetową. Na przykład, jeśli pojawi się prośba o dostęp do pliku PDF lub PNG, przeglądarki, które wykonują analizę odpowiedzi HTTP, wywnioskują typ pliku.

Rozważ plik z rozszerzeniem jpeg, który w rzeczywistości zawiera zawartość tekstową/HTML. Po użyciu rozszerzeń i przejściu zabezpieczeń w module przesyłania plik zostaje pomyślnie przesłany. Przesłany plik jest wywoływany za pośrednictwem adresu URL, a wykrywanie typu MIME zwraca w rezultacie tekst/HTML. Renderuje zawartość jako HTML. Właśnie wtedy pojawia się luka w zabezpieczeniach XSS.

Musisz więc uniemożliwić przeglądarkom decydowanie o treści przez wąchanie typu MIME. Aby to zrobić, możesz użyć nosniff.

Nagłówek X-Content-Type-Options dla Nginx:

add_header X-Content-Type-Options nosniff;

Nagłówek X-Content-Type-Options dla Apache:

Nagłówek zawsze X-Content-Type-Options nosniff

Nagłówek X-Content-Type-Options dla usług IIS:

<httpProtokół>
<niestandardowe nagłówki>
<dodaj nazwę="X-Content-Type-Options" wartość="wąchać" />
</customHeaders>
</httpProtocol>

Co to jest flaga HttpOnly Cookie?

Aplikacje internetowe śledzą sesje użytkowników za pomocą identyfikatora sesji. Przeglądarki będą to przechowywać i automatycznie dodawać do każdego żądania HTTP w zakresie pliku cookie.

To jest możliwe używać plików cookie do celów inne niż przekazanie klucza sesyjnego. Hakerzy mogą znaleźć dane użytkownika za pomocą wspomnianej luki w zabezpieczeniach XSS lub ataku CSRF (Cross-Site Request Forgery). Które pliki cookie są więc najważniejsze z punktu widzenia bezpieczeństwa?

Jako przykład możesz potraktować informacje zawarte w ostatnim obrazie, który kliknąłeś w galerii obrazów. W ten sposób ruch HTTP jest mniejszy, a część obciążenia może zostać rozwiązana przez przeglądarkę internetową użytkownika za pomocą skryptów po stronie klienta.

To tam gdzie Tylko Http wchodzi. Poniżej znajduje się przykład, jak powinno wyglądać przypisanie plików cookie:

Ustawić-Ciastko: użytkownik=t=cdabe8a1c2153d726; ścieżka=/; Tylko Http

Zwróć uwagę na wartość HttpOnly wysłaną w pliku Ustaw plik cookie operacja. Przeglądarka to zobaczy i nie będzie przetwarzać wartości z flagą HttpOnly, gdy plik cookie jest uzyskiwany przez dokument.ciasteczko zmienny. Inną flagą używaną w procesie Set-Cookie jest flaga Secure. Oznacza to, że wartość cookie zostanie dodana do nagłówka tylko dla żądań HTTPS. Witryny e-commerce zwykle używają go, ponieważ chcą zmniejszyć ruch w sieci i zwiększyć wydajność.

Korzystając z tej metody, możesz ukryć krytyczne dane użytkowników, takie jak nazwy użytkowników, hasła i informacje o kartach kredytowych. Ale jest problem. Użytkownikom, którzy ukończyli proces logowania, przypisywana jest wartość pliku cookie bez flagi Bezpieczny. Użytkownik może mieć klucz sesji, gdy wysyła żądanie HTTP do łączy innych niż HTTPS. Dodanie bezpiecznej flagi jest łatwe:

Ustawić-Ciastko: użytkownik=t=cdabe8a1c2153d726; ścieżka=/; Bezpieczne

Kiedy nie należy używać HttpOnly? Jeśli polegasz na JavaScript, powinieneś być ostrożny, ponieważ może to sprawić, że Twoja witryna będzie mniej bezpieczna.

Małe kroki działają na rzecz szerszego bezpieczeństwa sieci

Nie potrzebujesz zaawansowanej wiedzy na temat oprogramowania i serwerów, aby zwiększyć bezpieczeństwo aplikacji internetowych. Zmieniając tylko kilka linii, możesz zapobiec niektórym poważnym atakom. Oczywiście to nie wystarczy. Jest to jednak mały, ale skuteczny krok w kierunku bezpieczeństwa witryny. Wiedza jest najlepszym środkiem zapobiegawczym, dlatego warto znać subtelne niuanse tego, jak HTTPS chroni dane podczas przesyłania.