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.
W obecnych czasach ciężko, nie osadzać stylów in-line.
Po za tym przydało by się kilka przykładów użycia / jak zastosować reguły.
Niestety nie mogę się zgodzić z tym, że ciężko nie osadzać in-line. Kwestia sposobu pisania 🙂
Jeśli chodzi o przykłady to masz rację, rzeczywiście będę musiał uzupełnić wpis.