Security headers, czyli bezpieczne nagłówki HTTP
Spis treści
Dodając odpowiednie nagłówki możemy znacząco zwiększyć bezpieczeństwo naszej strony internetowej, sklepu czy aplikacji.
Zapraszam do przeczytaniu wpisu.
Content-Security-Policy - nagłówek chroni nas przed atakiem XSS. Możemy zdelarować “białą listę” źródeł, które mogą zostać załadowane z zewnętrznych serwerów.
W skrócie: jeśli atakujący umieściłby na Twojej stronie kod, który umożliwiałby wykonanie zapytania do innego serwera, a Ty miałbyś wprowadzony ten nagłówek poprawnie - nic się nie stanie. Zapytanie nie zostanie wykonane. Twoja strona jest bezpieczna :)
Należy pamiętać, że po dodaniu tego nagłówka wszystkie style inline’owe CSS zostaną “wyłączone”. Musimy również określić “białą listę” stron, z których możemy ładować dodatkowe rzeczy np. Google Fonts.
Które przeglądarki obsługują CSP? https://caniuse.com/#feat=contentsecuritypolicy
X-Frame-Options - informuje przeglądarkę o tym, czy pozwalamy umieszczać naszą stronę w ramce (iframe). Dodanie tego nagłówka uniemożliwia lub przynajmniej utrudnia wykonanie ataku clickjacking. Przykład ataku możecie zobaczyć tutaj:
Które przeglądarki obsługują X-Frame-Options? https://caniuse.com/#feat=x-frame-options
X-XSS-Protection - informuje przeglądarki, że mają przestać ładować strony jeśli wykryją, że przeprowadzany jest atak XSS. Nagłówek chroni użytkowników starszych przeglądarek. Jeśli wprowadziłeś nagłówek Content-Security-Policy, to nie potrzebujesz X-XSS-Protection.
X-Content-Type-Options - informacja o tym, że typ MIME (lub Content-Type), powinien być przestrzegany, niezmieniany. Zabezpiecza przed sniffingiem.
Strict-Transport-Security - informuje przeglądarkę o tym, że dostęp do strony powinien odbywać się za pomocą protokołu HTTPS, a nie HTTP.
Co jeszcze warto zmienić, usunąć?
Server - nagłówek informujący o oprogramowaniu serwera. Można ten nagłówek zmodyfikować tak aby zwracał fałszywą nazwę oprogramowania lub całkowicie usunąć.X-Powered-By - informuje w jakim języku została napisana nasza strona. Nagłówek może zostać usunięty lub powinniśmy zmienić jego wartość - kolejne utrudnienie dla atakującego.