Jak skonfigurować nagłówki zabezpieczeń w Nginx

Konfiguracja nagłówków zabezpieczeń w NGINX jest niezbędna do zwiększenia bezpieczeństwa aplikacji internetowych. Nagłówki zabezpieczeń chronią przed różnymi atakami, takimi jak skrypty między witrynami (XSS), przejmowanie kliknięć i inne ataki polegające na wstrzykiwaniu kodu. Instruują przeglądarkę, jak ma postępować z zawartością witryny, zapewniając dodatkową warstwę bezpieczeństwa.

Ten przewodnik przeprowadzi Cię przez etapy konfiguracji nagłówków zabezpieczeń w NGINX, pomagając chronić aplikacje internetowe i poprawiać ogólne bezpieczeństwo.

Wdrażanie ścisłych zabezpieczeń transportu HTTP (HSTS) w NGINX

Zrozumienie HSTS

HTTP Strict Transport Security (HSTS) to kluczowy protokół bezpieczeństwa witryn internetowych. Wymusza, aby połączenia z domeną odbywały się wyłącznie za pośrednictwem protokołu HTTPS. Ogranicza to ryzyko, takie jak ataki typu man-in-the-middle, oraz zapewnia integralność i poufność danych przesyłanych online. Gdy użytkownik próbuje uzyskać dostęp do witryny za pośrednictwem protokołu HTTP, HSTS automatycznie uaktualnia połączenie do protokołu HTTPS.

Konfiguracja HSTS w NGINX

Aby skonfigurować HSTS w NGINX, musisz zaktualizować blok serwera w pliku konfiguracyjnym NGINX. Plik ten zwykle znajduje się w /etc/nginx/nginx.conf lub w konfiguracjach specyficznych dla witryny w /etc/nginx/sites-available/. Aktualizacja polega na dodaniu nagłówka instruującego przeglądarkę, aby zawsze korzystała z protokołu HTTPS dla określonej domeny.

W bloku serwera swojej domeny dodaj następujący wiersz:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";

Linia ta zawiera dwa elementy:

  • max-age=31536000: Poinstruuj przeglądarkę, aby przez następne 12 miesięcy pamiętała o korzystaniu z protokołu HTTPS w Twojej witrynie.
  • includeSubDomains: Stosuje politykę HSTS do wszystkich subdomen Twojej witryny w celu zapewnienia kompleksowego bezpieczeństwa.

Przykładowa konfiguracja NGINX z HSTS

Twoja konfiguracja NGINX z nagłówkiem HSTS może wyglądać następująco:

upstream my_portal {
    server 127.0.0.1:8080;
}

server {
    listen 80;
    server_name example.com;
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";

    location / {
        proxy_pass http://my_portal;
    }
}

Po dodaniu tego nagłówka załaduj ponownie NGINX, aby wprowadzić zmiany za pomocą polecenia Sudo systemctl reload nginx lub sudo nginx -s reload.

Dodatkowe przykłady konfiguracji NGINX

W różnych scenariuszach konfiguracja NGINX z HSTS może się różnić. Oto dodatkowe przykłady:

Serwer wielodomenowy

server {
    listen 80;
    server_name example1.com example2.com;
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";

    location / {
        # Configuration details
    }
}

Ta konfiguracja dotyczy HSTS do wielu domen hostowanych na tym samym serwerze. Każda wymieniona domena będzie wymuszać połączenia HTTPS.

Serwer z terminacją SSL

server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate /path/to/certificate;
    ssl_certificate_key /path/to/private/key;
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";

    location / {
        # Configuration details
    }
}

Ta konfiguracja dotyczy serwerów obsługujących zakończenie protokołu SSL. Konfiguruje HSTS na bezpiecznym porcie (443) z określonymi certyfikatami SSL, wzmacniając bezpieczne połączenia.

Konfigurowanie polityki bezpieczeństwa treści (CSP) w NGINX

Wdrażanie CSP w NGINX

Zintegrowanie polityki bezpieczeństwa treści (CSP) z NGINX to strategiczne posunięcie mające na celu zwiększenie bezpieczeństwa aplikacji internetowych. Polega na dodaniu określonego nagłówka w bloku serwera pliku konfiguracyjnego NGINX. Zwykle znajduje się w /etc/nginx/nginx.conf lub w katalogu /etc/nginx/sites-available/. Plik ten wymaga starannej edycji, aby skutecznie zastosować CSP.

Aby uzyskać podstawową konfigurację CSP, dodaj następujący wiersz w bloku serwera:

add_header Content-Security-Policy "default-src 'self';" always;

Dyrektywa ta ogranicza ładowanie treści do domeny witryny internetowej („self”), znacznie zmniejszając ryzyko wykonania złośliwych treści zewnętrznych.

Przykładowa konfiguracja NGINX z CSP

Twoja konfiguracja NGINX z podstawową dyrektywą CSP może wyglądać następująco:

upstream my_portal {
    server 127.0.0.1:8080;
}

server {
    listen 80;
    server_name example.com;
    add_header Content-Security-Policy "default-src 'self';" always;

    location / {
        proxy_pass http://my_portal;
    }
}

Załaduj ponownie NGINX za pomocą sudo systemctl reload nginx lub sudo nginx -s reload po dodaniu tej dyrektywy.

Dostosowywanie CSP do konkretnych potrzeb

CSP można dostosować do konkretnych potrzeb bezpieczeństwa Twojej witryny internetowej. Oto rozszerzone konfiguracje dla różnych scenariuszy:

Zezwalanie na obrazy z dowolnego źródła

add_header Content-Security-Policy "default-src 'self'; img-src *;" always;

Taka konfiguracja umożliwia ładowanie obrazów z dowolnego źródła, zachowując ścisłą kontrolę nad innymi rodzajami treści.

Konfiguracja określonych skryptów i stylów

add_header Content-Security-Policy "default-src 'self'; script-src 'self' https://trustedscript.com; style-src 'self' 'unsafe-inline';";

To ustawienie umożliwia korzystanie ze skryptów z Twojej domeny i zaufanego źródła zewnętrznego wraz ze stylami wbudowanymi, równoważąc funkcjonalność z bezpieczeństwem.

Badanie dyrektyw i opcji CSP

Dyrektywy w CSP

Dyrektywy CSP to reguły definiujące zasady dotyczące określonych typów treści. Wspólne dyrektywy obejmują:

  • default-src: Domyślna polityka stosowana do większości typów treści.
  • script-src: zarządza źródłami zasobów JavaScript.
  • style-src: Określa dozwolone źródła zasobów CSS.
  • img-src: Kontroluje źródła zasobów obrazów.
  • connect-src: Ustawia zasady dla połączeń sieciowych, takich jak XMLHttpRequest, WebSocket i EventSource.

Wyrażenia źródłowe w CSP

Wyrażenia źródłowe definiują dopuszczalne źródła dla każdej dyrektywy:

  • „none”: blokuje wszystkie źródła.
  • „self”: Zezwala na zasoby tego samego pochodzenia.
  • „unsafe-inline”: zezwala na zasoby wbudowane, takie jak style lub adresy URL JavaScript.
  • „unsafe-eval”: Zezwala na JavaScript eval() funkcje i podobne metody.
  • https:: Włącza zasoby z dowolnego adresu URL HTTPS.

Konfigurowanie ochrony X-XSS w NGINX

Wprowadzenie do ochrony X-XSS

X-XSS-Protection, czyli nagłówek Cross-Site Scripting, jest niezbędny do ochrony aplikacji internetowych przed atakami XSS (Cross-Site Scripting). Obsługiwany przez główne przeglądarki internetowe, takie jak Chrome, Internet Explorer i Safari, ten nagłówek zwiększa bezpieczeństwo w sieci, zapobiegając ładowaniu stron w przypadku wykrycia odzwierciedlonych ataków XSS.

Włączanie ochrony X-XSS w NGINX

Zintegrowanie nagłówka X-XSS-Protection z konfiguracją serwera NGINX wzmacnia natywną ochronę XSS przeglądarki. Aby włączyć tę funkcję bezpieczeństwa, uzyskaj dostęp do pliku konfiguracyjnego NGINX, zwykle znajdującego się w /etc/nginx/nginx.conf lub w katalogu /etc/nginx/sites-available/.

W bloku serwera pliku konfiguracyjnego NGINX wstaw tę dyrektywę:

add_header X-XSS-Protection "1; mode=block";

Dyrektywa ta składa się z dwóch części:

  • 1: Aktywuje filtr XSS przeglądarki.
  • mode=block: nakazuje przeglądarce blokowanie strony w przypadku wykrycia ataku XSS, zamiast podejmować próbę jej oczyszczenia.

Przykładowa konfiguracja NGINX z ochroną X-XSS

Przykładowa konfiguracja NGINX zawierająca ochronę X-XSS może wyglądać następująco:

upstream my_portal {
    server 127.0.0.1:8080;
}

server {
    listen 80;
    server_name example.com;
    add_header X-XSS-Protection "1; mode=block";

    location / {
        proxy_pass http://my_portal;
    }
}

Po dodaniu tego nagłówka załaduj ponownie NGINX, używając sudo systemctl reload nginx lub sudo nginx -s reload.

Dodatkowe scenariusze konfiguracji NGINX

Dla serwera z SSL

server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate /path/to/certificate;
    ssl_certificate_key /path/to/private/key;
    add_header X-XSS-Protection "1; mode=block";

    # Further configuration
}

Ta konfiguracja dotyczy serwerów z protokołem SSL, zapewniając aktywną ochronę X-XSS w przypadku połączeń szyfrowanych.

Obsługa wielu domen

server {
    listen 80;
    server_name example1.com example2.com;
    add_header X-XSS-Protection "1; mode=block";

    # Further configuration
}

Ta konfiguracja stosuje ochronę X-XSS w wielu domenach hostowanych na jednym serwerze.

Konfigurowanie opcji X-Frame w NGINX

Rola opcji X-Frame

X-Frame-Options to niezbędny nagłówek bezpieczeństwa zaprojektowany w celu ochrony stron internetowych przed atakami typu clickjacking. Zapobiega wyświetlaniu stron internetowych w ramkach lub ramkach iframe, które są często wykorzystywane w tego typu atakach. Obsługiwane przez wszystkie główne przeglądarki internetowe, X-Frame-Options zapewnia szeroką ochronę, zwiększając bezpieczeństwo Twojej obecności w Internecie na różnych platformach.

Implementowanie opcji X-Frame w NGINX

Włączenie nagłówka X-Frame-Options do konfiguracji serwera NGINX ma kluczowe znaczenie dla zwiększenia bezpieczeństwa Twojej witryny. To zadanie obejmuje edycję pliku konfiguracyjnego NGINX, zwykle znajdującego się w /etc/nginx/nginx.conf lub w katalogu /etc/nginx/sites-available/.

Aby włączyć tę funkcję bezpieczeństwa, dodaj następującą dyrektywę do bloku serwera w pliku konfiguracyjnym NGINX:

add_header X-Frame-Options "DENY";

Ta dyrektywa, ustawiona na „ODMÓW”, instruuje przeglądarkę, aby blokowała wszelkie próby renderowania strony w ramce lub ramce iframe, zapewniając solidną ochronę przed przechwytywaniem kliknięć.

Przykładowa konfiguracja NGINX z opcjami X-Frame

Przykładowa konfiguracja NGINX z nagłówkiem X-Frame-Options jest następująca:

upstream my_portal {
    server 127.0.0.1:8080;
}

server {
    listen 80;
    server_name example.com;
    add_header X-Frame-Options "DENY";

    location / {
        proxy_pass http://my_portal;
    }
}

Po dodaniu tego nagłówka ważne jest ponowne załadowanie NGINX, aby aktywować zmiany. Można to zrobić za pomocą sudo systemctl reload nginx lub sudo nginx -s reload.

Rozszerzanie konfiguracji NGINX dla opcji X-Frame

Dla serwerów obsługujących SSL

server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate /path/to/certificate;
    ssl_certificate_key /path/to/private/key;
    add_header X-Frame-Options "DENY";

    # Additional configuration
}

Ta konfiguracja jest przeznaczona dla serwerów z protokołem SSL, zapewniając wymuszenie opcji X-Frame-Options w przypadku bezpiecznych połączeń.

Obsługa wielu domen

server {
    listen 80;
    server_name example1.com example2.com;
    add_header X-Frame-Options "DENY";

    # Additional configuration
}

Ta konfiguracja stosuje nagłówek X-Frame-Options w wielu domenach na tym samym serwerze, zwiększając bezpieczeństwo każdej domeny.

Implementowanie opcji typu zawartości X w NGINX

Rola opcji typu zawartości X

X-Content-Type-Options to istotny nagłówek bezpieczeństwa w bezpieczeństwie sieciowym, który uniemożliwia przeglądarkom wąchanie typu MIME. Ten nagłówek potwierdza, że ​​przeglądarki respektują zadeklarowany typ zawartości w nagłówkach HTTP, eliminując luki w zabezpieczeniach, które mogą pojawić się, gdy przeglądarki błędnie interpretują typy plików, np. traktowanie plików obrazów jako wykonywalnego HTML, co może prowadzić do ataków typu cross-site scripting (XSS).

Konfigurowanie opcji typu zawartości X w NGINX

Aby zwiększyć bezpieczeństwo serwera WWW za pomocą nagłówka X-Content-Type-Options, musisz bezpośrednio zmodyfikować plik konfiguracyjny NGINX. Plik ten zwykle znajduje się w /etc/nginx/nginx.conf lub w konfiguracjach specyficznych dla witryny w /etc/nginx/sites-available/.

Dołącz ten nagłówek, dodając następujący wiersz do pliku server blok konfiguracji NGINX:

add_header X-Content-Type-Options "nosniff";

Ustawienie „nosniff” nakazuje przeglądarce ścisłe przestrzeganie typu zawartości określonego przez serwer, zapobiegając alternatywnym interpretacjom treści.

Przykładowa konfiguracja NGINX z opcjami X-Content-Type

Konfiguracja NGINX z opcjami X-Content-Type może mieć następującą strukturę:

upstream my_portal {
    server 127.0.0.1:8080;
}

server {
    listen 80;
    server_name example.com;
    add_header X-Content-Type-Options "nosniff";

    location / {
        proxy_pass http://my_portal;
    }
}

Po zaktualizowaniu konfiguracji pamiętaj o ponownym załadowaniu NGINX, aby zmiany odniosły skutek, używając polecenia Sudo systemctl reload nginx lub Sudo nginx -s reload.

Rozszerzone przykłady konfiguracji NGINX

Konfiguracja dla protokołu SSL/TLS

server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate /path/to/certificate.pem;
    ssl_certificate_key /path/to/key.pem;
    add_header X-Content-Type-Options "nosniff";

    # Additional SSL configurations and locations
}

Ta konfiguracja jest przeznaczona dla serwerów z protokołem SSL/TLS i zastosowaniem opcji typu X-Content-Type w przypadku bezpiecznych połączeń w celu zwiększenia bezpieczeństwa.

Konfiguracja serwera wielodomenowego

server {
    listen 80;
    server_name example1.com example2.com;
    add_header X-Content-Type-Options "nosniff";

    # Additional configurations for multiple domains
}

Ta konfiguracja stosuje nagłówek X-Content-Type-Options w wielu domenach hostowanych na tym samym serwerze, zapewniając spójne ustawienia zabezpieczeń we wszystkich domenach.

Konfigurowanie zasad dotyczących stron odsyłających w NGINX

Funkcja polityki odsyłającej

Referrer-Policy to niezbędny nagłówek HTTP służący do zwiększania prywatności i bezpieczeństwa użytkowników w Internecie. Kontroluje ilość informacji o skierowaniach zawartych w nagłówku strony odsyłającej, gdy użytkownicy przechodzą z Twojej witryny do innych, chroniąc poufne informacje przed ujawnieniem w żądaniach internetowych.

Konfigurowanie zasad dotyczących stron odsyłających w NGINX

Aby zaimplementować nagłówek Referrer-Policy na serwerze NGINX, zmodyfikuj plik konfiguracyjny NGINX, zwykle znajdujący się w /etc/nginx/nginx.conf lub w katalogu /etc/nginx/sites-available/. Dodaj następującą dyrektywę do bloku serwera:

add_header Referrer-Policy "no-referrer";

Ta dyrektywa, ustawiona na „no-referrer”, gwarantuje, że podczas nawigacji w witrynie nie będą wysyłane żadne informacje o osobach odsyłających, maksymalizując prywatność.

Przykładowa konfiguracja NGINX z polityką odsyłającą

Twoja konfiguracja NGINX z nagłówkiem Referrer-Policy może wyglądać następująco:

upstream my_portal {
    server 127.0.0.1:8080;
}

server {
    listen 80;
    server_name example.com;
    add_header Referrer-Policy "no-referrer";

    location / {
        proxy_pass http://my_portal;
    }
}

Po dodaniu tego nagłówka załaduj ponownie NGINX za pomocą poleceń takich jak Sudo systemctl reload nginx lub sudo nginx -s reload.

Opcje i definicje zasad dotyczących stron odsyłających

  • no-referrer: Żadne informacje o osobie polecającej nie są wysyłane.
  • no-referrer-when-downgrade (domyślnie): wysyła informacje o stronie odsyłającej dla miejsc docelowych tego samego pochodzenia lub bezpiecznych docelowych adresów URL (HTTPS) z bezpiecznej strony.
  • Origin: Wysyła tylko źródło (schemat, host i port).
  • Origin-when-cross-Origin: Wysyła pełny adres URL w przypadku żądań tego samego źródła, ale tylko źródło w innych przypadkach.
  • to samo pochodzenie: wysyła pełną stronę odsyłającą dla żądań tego samego pochodzenia, ale bez nagłówka dla żądań z różnych źródeł.
  • strict-Origin: Wysyła źródło żądań HTTPS, ale bez nagłówka dla żądań HTTP.
  • strict-Origin-when-cross-Origin: Wysyła pełną stronę odsyłającą do żądań tego samego źródła, początek do miejsc docelowych HTTPS ze stron HTTPS i bez nagłówka do miejsc docelowych HTTP.
  • unsafe-url: Wysyła pełny adres URL niezależnie od pochodzenia i bezpieczeństwa (niezalecane).

Rozszerzone przykłady konfiguracji NGINX

Konfiguracja protokołu SSL/TLS

server {
    listen 443 ssl;
    server_name secure.example.com;
    ssl_certificate /path/to/certificate.pem;
    ssl_certificate_key /path/to/key.pem;
    add_header Referrer-Policy "no-referrer";

    # Additional SSL configurations
}

Ta konfiguracja stosuje nagłówek Referrer-Policy w bezpiecznym środowisku z obsługą protokołu SSL/TLS, zwiększając prywatność w przypadku połączeń szyfrowanych.

Konfiguracja serwera wielodomenowego

server {
    listen 80;
    server_name example1.com example2.com;
    add_header Referrer-Policy "no-referrer";

    # Additional configurations for each domain
}

Ta konfiguracja gwarantuje, że nagłówek Referrer-Policy zostanie zastosowany w wielu domenach hostowanych na tym samym serwerze, zachowując spójne ustawienia prywatności.

Implementacja polityki uprawnień w NGINX

Zrozumienie zasad uprawnień

Nagłówek Permissions-Policy umożliwia administratorom sieci precyzyjną kontrolę nad funkcjami przeglądarek i interfejsami API w ich witrynach internetowych. Skonfigurowanie tego nagłówka znacznie zwiększa bezpieczeństwo i prywatność witryny, umożliwiając wprowadzenie ograniczeń funkcji, takich jak geolokalizacja, kamera i mikrofon, w zależności od konkretnych potrzeb witryny.

Konfigurowanie polityki uprawnień w NGINX

Aby włączyć nagłówek Permissions-Policy do serwera NGINX, zmodyfikuj plik konfiguracyjny NGINX, zwykle znajdujący się w /etc/nginx/nginx.conf lub w katalogu /etc/nginx/sites-available/.

Dodaj następującą dyrektywę do bloku serwera:

add_header Permissions-Policy "geolocation=(); midi=(); notifications=(); push=(); sync-xhr=(); accelerometer=(); gyroscope=(); magnetometer=(); payment=(); usb=(); vr=(); camera=(); microphone=(); speaker=(); vibrate=(); ambient-light-sensor=(); autoplay=(); encrypted-media=(); execute-clipboard=(); document-domain=(); fullscreen=(); imagecapture=(); lazyload=(); legacy-image-formats=(); oversized-images=(); unoptimized-lossy-images=(); unoptimized-lossless-images=(); unsized-media=(); vertical-scroll=(); web-share=(); xr-spatial-tracking=();";

Ta dyrektywa wymienia różne funkcje przeglądarki i interfejsy API, ustawiając je wszystkie na (), co skutecznie je wyłącza. Ta konfiguracja zapewnia kompleksowe podejście do ograniczania funkcji, które mogą zagrozić prywatności lub bezpieczeństwu użytkownika.

Przykładowa konfiguracja NGINX z polityką uprawnień

Oto przykład tego, jak może wyglądać konfiguracja NGINX z nagłówkiem Permissions-Policy:

upstream my_portal {
    server 127.0.0.1:8080;
}

server {
    listen 80;
    server_name example.com;
    add_header Permissions-Policy "geolocation=(); midi=(); notifications=(); push=(); sync-xhr=(); accelerometer=(); gyroscope=(); magnetometer=(); payment=(); usb=(); vr=(); camera=(); microphone=(); speaker=(); vibrate=(); ambient-light-sensor=(); autoplay=(); encrypted-media=(); execute-clipboard=(); document-domain=(); fullscreen=(); imagecapture=(); lazyload=(); legacy-image-formats=(); oversized-images=(); unoptimized-lossy-images=(); unoptimized-lossless-images=(); unsized-media=(); vertical-scroll=(); web-share=(); xr-spatial-tracking=();";

    location / {
        proxy_pass http://my_portal;
    }
}

Dyrektywa ta kompleksowo wymienia różne funkcje przeglądarki i interfejsy API, ustawiając je na (), aby skutecznie je wyłączyć.

Przykładowa konfiguracja NGINX z polityką uprawnień

Twoja konfiguracja NGINX, w tym polityka uprawnień, może wyglądać następująco:

upstream my_portal {
    server 127.0.0.1:8080;
}

server {
    listen 80;
    server_name example.com;
    add_header Permissions-Policy "geolocation=(); midi=(); notifications=(); push=(); sync-xhr=(); accelerometer=(); gyroscope=(); magnetometer=(); payment=(); usb=(); vr=(); camera=(); microphone=(); speaker=(); vibrate=(); ambient-light-sensor=(); autoplay=(); encrypted-media=(); execute-clipboard=(); document-domain=(); fullscreen=(); imagecapture=(); lazyload=(); legacy-image-formats=(); oversized-images=(); unoptimized-lossy-images=(); unoptimized-lossless-images=(); unsized-media=(); vertical-scroll=(); web-share=(); xr-spatial-tracking=();";

    location / {
        proxy_pass http://my_portal;
    }
}

Załaduj ponownie NGINX za pomocą sudo systemctl reload nginx lub sudo nginx -s reload po wprowadzeniu tych zmian.

Wyjaśnienie opcji zasad uprawnień

Nagłówek Permissions-Policy umożliwia dostosowanie użycia różnych funkcji:

  • geolokalizacja: Kontroluje dostęp do danych geolokalizacyjnych.
  • midi: zarządza dostępem do urządzeń MIDI.
  • powiadomienia: reguluje wyświetlanie powiadomień.
  • naciskać: wpływa na funkcjonalność powiadomień push.
  • synchronizacja-xhr: Odnosi się do synchronicznego żądania XMLHTTPRequest.
  • akcelerometr: dyktuje dostęp do akcelerometru urządzenia.
  • żyroskop: Kontroluje dostęp do żyroskopu.
  • magnetometr: zarządza dostępem do magnetometru urządzenia.
  • Zapłata: Dotyczy funkcji żądania płatności.
  • usb: reguluje dostęp do urządzeń USB.
  • wr: Dotyczy funkcji rzeczywistości wirtualnej.
  • kamera: zarządza dostępem do kamery.
  • mikrofon: dyktuje dostęp do mikrofonu.
  • głośnik: kontroluje dostęp do urządzeń głośnikowych.
  • wibrować: Wpływa na API wibracji.
  • czujnik światła otoczenia: Dotyczy czujnika światła otoczenia.
  • Automatyczne odtwarzanie: Steruje automatycznym odtwarzaniem multimediów.
  • zaszyfrowane media: zarządza dostępem do zaszyfrowanych multimediów.
  • wykonaj-schowek: reguluje dostęp do odczytu/zapisu schowka.
  • domena-dokumentu: Dotyczy funkcji document.domain.
  • pełny ekran: dyktuje dostęp do pełnego ekranu.
  • przechwytywania obrazu: Steruje funkcją przechwytywania obrazu.
  • leniwe ładowanie: wpływa na leniwe ładowanie obrazów.
  • starsze formaty obrazów: Dotyczy starszych formatów obrazów.
  • obrazy o dużych rozmiarach: reguluje ładowanie zbyt dużych obrazów.
  • niezoptymalizowane-stratne-obrazy: zarządza niezoptymalizowanymi obrazami stratnymi.
  • niezoptymalizowane-bezstratne-obrazy: Dotyczy niezoptymalizowanych obrazów bezstratnych.
  • nośniki niewymiarowe: Steruje multimediami bez wyraźnego rozmiaru.
  • przewijanie w pionie: wpływa na przewijanie w pionie.
  • udostępnianie w sieci: dotyczy funkcji udostępniania Internetu.
  • śledzenie-przestrzenne xr: reguluje śledzenie przestrzenne XR.

Zaawansowane konfiguracje polityki uprawnień w NGINX

Konfigurowanie zasad uprawnień z określonymi domenami i symbolami wieloznacznymi

Poza podstawową konfiguracją wyłączania funkcji za pomocą (), zasady uprawnień w NGINX można dostosować tak, aby zezwalały na pewne funkcje z określonych domen lub przy użyciu symboli wieloznacznych. Ta zaawansowana konfiguracja umożliwia bardziej szczegółową kontrolę nad tym, do czego i skąd Twoja witryna może uzyskać dostęp.

Przykład: zezwolenie na funkcje z określonych domen

server {
    listen 80;
    server_name example.com;
    add_header Permissions-Policy "geolocation=(https://trusteddomain.com), microphone=(https://alloweddomain.com)";

    location / {
        proxy_pass http://my_portal;
    }
}

Ta konfiguracja umożliwia dostęp do danych geolokalizacyjnych tylko z https://trusteddomain.com i dostęp do mikrofonu wyłącznie z https://alloweddomain.com, zwiększając bezpieczeństwo poprzez ograniczenie tych wrażliwych funkcji do zaufanych źródeł.

Przykład: używanie symboli wieloznacznych w przypadku szerokich uprawnień

server {
    listen 80;
    server_name example.com;
    add_header Permissions-Policy "camera=*; fullscreen=*";

    location / {
        proxy_pass http://my_portal;
    }
}

Symbol wieloznaczny * w tej konfiguracji umożliwia dostęp do kamery i tryb pełnoekranowy z dowolnej domeny. Takie podejście zapewnia szersze uprawnienia, odpowiednie dla witryn internetowych wymagających szerokiego dostępu do funkcji z różnych źródeł.

Przykład: łączenie ograniczeń i uprawnień

server {
    listen 80;
    server_name example.com;
    add_header Permissions-Policy "accelerometer=(); gyroscope=(self https://example2.com); payment=*";

    location / {
        proxy_pass http://my_portal;
    }
}

W tej konfiguracji dostęp do akcelerometru jest wyłączony, dostęp do żyroskopu jest dozwolony z tej samej domeny i https://example2.com, a żądania płatności są dozwolone ze wszystkich domen.

Weryfikacja nagłówków zabezpieczeń za pomocą polecenia Curl w NGINX

Używanie Curl do sprawdzania nagłówków zabezpieczeń

Polecenie curl jest cennym narzędziem do sprawdzania konfiguracji nagłówków zabezpieczeń na serwerze NGINX. Umożliwia sprawdzenie nagłówków witryny i potwierdzenie, że nagłówki zabezpieczeń są prawidłowo skonfigurowane. Ten etap weryfikacji ma kluczowe znaczenie dla zapewnienia, że ​​środki bezpieczeństwa Twojego serwera internetowego są aktywne i działają zgodnie z przeznaczeniem.

Wykonywanie polecenia Curl w celu weryfikacji nagłówka

Aby sprawdzić nagłówki swojej witryny, wykonaj w terminalu następujące polecenie:

curl -I http://example.com

Zamień example.com na nazwę swojej domeny. To polecenie żąda nagłówków z serwera, zapewniając wgląd w aktywne konfiguracje zabezpieczeń.

Oczekiwany wynik i interpretacja

Po uruchomieniu polecenia curl powinieneś otrzymać dane wyjściowe podobne do następujących:

HTTP/1.1 200 OK
Server: nginx
Date: Mon, 20 Mar 2023 00:00:00 GMT
Content-Type: text/html
Connection: keep-alive
Strict-Transport-Security: max-age=31536000; includeSubDomains
Content-Security-Policy: default-src 'self';
X-XSS-Protection: 1; mode=block
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
Referrer-Policy: no-referrer
Permissions-Policy: geolocation=(); midi=(); notifications=(); push=(); sync-xhr=(); accelerometer=(); gyroscope=(); magnetometer=(); payment=(); usb=(); vr=(); camera=(); microphone=(); speaker=(); vibrate=(); ambient-light-sensor=(); autoplay=(); encrypted-media=(); execute-clipboard=(); document-domain=(); fullscreen=(); imagecapture=(); lazyload=(); legacy-image-formats=(); oversized-images=(); unoptimized-lossy-images=(); unoptimized-lossless-images=(); unsized-media=(); vertical-scroll=(); web-share=(); xr-spatial-tracking=();"

Dane wyjściowe potwierdzają obecność i poprawną konfigurację różnych nagłówków zabezpieczeń na serwerze, takich jak Strict-Transport-Security, Content-Security-Policy, X-XSS-Protection i inne. Każdy nagłówek wymieniony w wynikach odgrywa określoną rolę w zabezpieczaniu i ochronie serwera WWW przed różnymi lukami w zabezpieczeniach sieciowych.

Wniosek

Konfigurując nagłówki zabezpieczeń w NGINX, znacznie zwiększasz bezpieczeństwo swoich aplikacji internetowych. Regularnie przeglądaj i aktualizuj nagłówki zabezpieczeń, aby dostosować się do zmieniających się zagrożeń bezpieczeństwa. Implementacja tych nagłówków pomaga chronić przed szeroką gamą ataków i zapewnia użytkownikom bezpieczniejsze przeglądanie. Zachowaj czujność i aktualizuj konfigurację NGINX, aby solidnie chronić swoje zasoby sieciowe.

Joshua James
Chodź za mną
Najnowsze posty autorstwa Joshua James (widzieć wszystko)

Dodaj komentarz