Jak nakonfigurovat bezpečnostní hlavičky v Nginx

Konfigurace hlaviček zabezpečení v NGINX je nezbytná pro zvýšení bezpečnosti vašich webových aplikací. Bezpečnostní hlavičky chrání před různými útoky, jako je cross-site scripting (XSS), clickjacking a další útoky vkládání kódu. Instruují prohlížeč, jak zacházet s obsahem vašeho webu, a poskytují tak další vrstvu zabezpečení.

Tato příručka vás provede kroky konfigurace hlaviček zabezpečení v NGINX, pomůže vám chránit vaše webové aplikace a zlepšit celkové zabezpečení.

Implementace HTTP Strict Transport Security (HSTS) v NGINX

Porozumění HSTS

HTTP Strict Transport Security (HSTS) je klíčový bezpečnostní protokol webových stránek. Vynucuje, aby připojení k doméně byla výhradně přes HTTPS. To zmírňuje rizika, jako jsou útoky typu man-in-the-middle, a zajišťuje integritu a důvěrnost dat přenášených online. Když se uživatel pokusí o přístup k webu přes HTTP, HSTS automaticky upgraduje připojení na HTTPS.

Konfigurace HSTS v NGINX

Chcete-li nastavit HSTS v NGINX, musíte aktualizovat blok serveru v konfiguračním souboru NGINX. Tento soubor se obvykle nachází v /etc/nginx/nginx.conf nebo v konfiguracích specifických pro web v /etc/nginx/sites-available/. Aktualizace zahrnuje přidání hlavičky, která instruuje prohlížeč, aby vždy používal HTTPS pro zadanou doménu.

Do bloku serveru pro vaši doménu přidejte následující řádek:

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

Tento řádek obsahuje dvě složky:

  • max-age=31536000: Instruujte prohlížeč, aby pamatoval na používání HTTPS pro váš web po dobu následujících 12 měsíců.
  • includeSubDomains: Aplikuje zásady HSTS na všechny subdomény vašeho webu pro komplexní zabezpečení.

Ukázka konfigurace NGINX s HSTS

Vaše konfigurace NGINX s hlavičkou HSTS může vypadat takto:

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 přidání této hlavičky znovu načtěte NGINX, abyste provedli změny pomocí sudo systemctl reload nginx nebo sudo nginx -s reload.

Další příklady konfigurace NGINX

V různých scénářích se může vaše konfigurace NGINX s HSTS lišit. Zde jsou další příklady:

Multidoménový server

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

    location / {
        # Configuration details
    }
}

Tato konfigurace aplikuje HSTS na více domén hostovaných na stejném serveru. Každá uvedená doména bude vynucovat připojení HTTPS.

Server s ukončením 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
    }
}

Toto nastavení je pro servery zpracovávající ukončení SSL. Konfiguruje HSTS na zabezpečeném portu (443) se specifikovanými certifikáty SSL, čímž posiluje zabezpečená připojení.

Konfigurace zásad zabezpečení obsahu (CSP) v NGINX

Implementace CSP v NGINX

Integrace zásad zabezpečení obsahu (CSP) do NGINX je strategickým krokem ke zvýšení zabezpečení webových aplikací. Zahrnuje přidání konkrétní hlavičky do bloku serveru vašeho konfiguračního souboru NGINX. Tento soubor se obvykle nachází na /etc/nginx/nginx.conf nebo v adresáři /etc/nginx/sites-available/ a vyžaduje pečlivé úpravy, aby bylo možné CSP efektivně aplikovat.

Pro základní nastavení CSP přidejte do bloku serveru následující řádek:

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

Tato směrnice omezuje načítání obsahu na doménu webové stránky („self“), čímž výrazně snižuje riziko spuštění škodlivého externího obsahu.

Příklad konfigurace NGINX s CSP

Vaše konfigurace NGINX se základní direktivou CSP může vypadat takto:

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;
    }
}

Po přidání této direktivy znovu načtěte NGINX pomocí sudo systemctl reload nginx nebo sudo nginx -s reload.

Přizpůsobení CSP pro konkrétní potřeby

CSP lze upravit tak, aby odpovídal specifickým potřebám zabezpečení vašeho webu. Zde jsou rozšířené konfigurace pro různé scénáře:

Povolení obrázků z jakéhokoli zdroje

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

Tato konfigurace umožňuje načítání obrázků z libovolného zdroje při zachování přísné kontroly nad jinými typy obsahu.

Konfigurace specifických skriptů a stylů

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

Toto nastavení umožňuje skripty z vaší domény a důvěryhodného externího zdroje spolu s vloženými styly, čímž je vyvážena funkčnost a zabezpečení.

Zkoumání směrnic a možností CSP

Směrnice v CSP

Direktivy CSP jsou pravidla, která definují zásady pro konkrétní typy obsahu. Mezi běžné směrnice patří:

  • default-src: Výchozí zásada aplikovaná na většinu typů obsahu.
  • script-src: Řídí zdroje pro zdroje JavaScriptu.
  • style-src: Určuje povolené zdroje pro zdroje CSS.
  • img-src: Řídí zdroje pro zdroje obrázků.
  • connect-src: Nastavuje zásady pro síťová připojení, jako je XMLHttpRequest, WebSocket a EventSource.

Zdrojové výrazy v CSP

Zdrojové výrazy definují povolené zdroje pro každou direktivu:

  • 'none': Blokuje všechny zdroje.
  • 'self': Povoluje zdroje ze stejného původu.
  • 'unsafe-inline': Umožňuje vložené zdroje, jako jsou styly nebo adresy URL JavaScriptu.
  • 'unsafe-eval': Povoluje JavaScript eval() funkce a podobné metody.
  • https:: Povolí zdroje z libovolné adresy URL HTTPS.

Konfigurace X-XSS-Protection v NGINX

Úvod do X-XSS-Protection

X-XSS-Protection neboli hlavička Cross-Site Scripting je nezbytná pro ochranu webových aplikací před útoky XSS (Cross-Site Scripting). Tato hlavička, kterou podporují hlavní webové prohlížeče, jako je Chrome, Internet Explorer a Safari, zvyšuje zabezpečení webu tím, že brání načítání stránek, když jsou detekovány odražené útoky XSS.

Povolení X-XSS-Protection v NGINX

Integrace hlavičky X-XSS-Protection do vaší konfigurace serveru NGINX posiluje nativní XSS ochranu prohlížeče. Chcete-li povolit tuto funkci zabezpečení, přejděte do konfiguračního souboru NGINX, který se obvykle nachází na adrese /etc/nginx/nginx.conf nebo v adresáři /etc/nginx/sites-available/.

Do bloku serveru vašeho konfiguračního souboru NGINX vložte tuto direktivu:

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

Tato směrnice se skládá ze dvou částí:

  • 1: Aktivuje filtr XSS v prohlížeči.
  • mode=block: Nařídí prohlížeči, aby zablokoval stránku, pokud je detekován útok XSS, místo aby se ji pokoušel dezinfikovat.

Příklad konfigurace NGINX s X-XSS-Protection

Příklad konfigurace NGINX včetně X-XSS-Protection může vypadat takto:

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 přidání této hlavičky znovu načtěte NGINX pomocí sudo systemctl reload nginx nebo sudo nginx -s reload.

Další scénáře konfigurace NGINX

Pro server s 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
}

Toto nastavení je pro servery s SSL a zajišťuje, že X-XSS-Protection je aktivní u šifrovaných připojení.

Obsluha více domén

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

    # Further configuration
}

Tato konfigurace aplikuje ochranu X-XSS na více domén hostovaných na jednom serveru.

Konfigurace X-Frame-Options v NGINX

Role X-Frame-Options

X-Frame-Options je základní bezpečnostní hlavička určená k ochraně webových stránek před útoky typu clickjacking. Zabraňuje zobrazování webových stránek v rámcích nebo iframe, které se při těchto útocích často používají. X-Frame-Options, podporované všemi hlavními webovými prohlížeči, poskytuje širokou ochranu a zvyšuje bezpečnost vaší webové přítomnosti na různých platformách.

Implementace X-Frame-Options v NGINX

Začlenění hlavičky X-Frame-Options do konfigurace serveru NGINX je zásadní pro zvýšení bezpečnosti vašeho webu. Tato úloha zahrnuje úpravu konfiguračního souboru NGINX, který se obvykle nachází v /etc/nginx/nginx.conf nebo v adresáři /etc/nginx/sites-available/.

Chcete-li povolit tuto funkci zabezpečení, přidejte do bloku serveru v konfiguračním souboru NGINX následující direktivu:

add_header X-Frame-Options "DENY";

Tato direktiva nastavená na „DENY“ dává prohlížeči pokyn, aby zablokoval jakýkoli pokus o vykreslení stránky v rámci nebo iframe, čímž nabízí robustní obranu proti clickjackingu.

Příklad konfigurace NGINX s X-Frame-Options

Příklad nastavení NGINX s hlavičkou X-Frame-Options je následující:

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;
    }
}

Jakmile přidáte toto záhlaví, je důležité znovu načíst NGINX, aby se změny aktivovaly. To lze provést pomocí sudo systemctl reload nginx nebo sudo nginx -s reload.

Rozšíření konfigurace NGINX pro X-Frame-Options

Pro servery s povoleným 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
}

Tato konfigurace je pro servery s SSL, což zajišťuje vynucování X-Frame-Options na zabezpečených připojeních.

Obsluha více domén

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

    # Additional configuration
}

Toto nastavení aplikuje hlavičku X-Frame-Options na více domén na stejném serveru, čímž posílí zabezpečení pro každou doménu.

Implementace X-Content-Type-Options v NGINX

Role X-Content-Type-Options

X-Content-Type-Options je zásadní bezpečnostní hlavička v zabezpečení webu, která brání prohlížečům ve sniffování typu MIME. Tato hlavička posiluje, že prohlížeče respektují deklarovaný typ obsahu v hlavičkách HTTP, a řeší tak zranitelnosti zabezpečení, které mohou nastat, když prohlížeče nesprávně interpretují typy souborů, jako je zacházení se soubory obrázků jako spustitelný HTML, což by mohlo vést k útokům cross-site scripting (XSS).

Nastavení X-Content-Type-Options v NGINX

Chcete-li zvýšit zabezpečení vašeho webového serveru pomocí hlavičky X-Content-Type-Options, musíte přímo upravit konfigurační soubor NGINX. Tento soubor se obvykle nachází v /etc/nginx/nginx.conf nebo v konfiguracích specifických pro danou lokalitu v /etc/nginx/sites-available/.

Zahrňte toto záhlaví přidáním následujícího řádku do server blok vaší konfigurace NGINX:

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

Nastavení „nosniff“ nařizuje prohlížeči, aby striktně dodržoval specifikovaný typ obsahu serveru, a zabraňuje tak alternativní interpretaci obsahu.

Příklad konfigurace NGINX s X-Content-Type-Options

Konfigurace NGINX s X-Content-Type-Options může být strukturována takto:

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 aktualizaci konfigurace nezapomeňte znovu načíst NGINX, aby se změny projevily, pomocí sudo systemctl reload nginx nebo sudo nginx -s reload.

Rozšířené příklady konfigurace NGINX

Konfigurace pro 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
}

Toto nastavení je určeno pro servery s SSL/TLS, které pro zvýšení zabezpečení používají X-Content-Type-Options na zabezpečená připojení.

Konfigurace vícedoménového serveru

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

    # Additional configurations for multiple domains
}

Tato konfigurace aplikuje hlavičku X-Content-Type-Options na více domén hostovaných na stejném serveru a zajišťuje konzistentní nastavení zabezpečení ve všech doménách.

Konfigurace zásad refererů v NGINX

Funkce odkazující zásady

Referrer-Policy je základní HTTP hlavička pro zvýšení soukromí a zabezpečení uživatelů na webu. Řídí, kolik informací o doporučení je zahrnuto v záhlaví Referer, když uživatelé přejdou z vašeho webu na jiné, a chrání citlivé informace před odhalením ve webových žádostech.

Nastavení zásad doporučení v NGINX

Chcete-li implementovat hlavičku Referrer-Policy na vašem serveru NGINX, upravte konfigurační soubor NGINX, který se obvykle nachází na adrese /etc/nginx/nginx.conf nebo v adresáři /etc/nginx/sites-available/. Přidejte následující direktivu do bloku serveru:

add_header Referrer-Policy "no-referrer";

Tato direktiva nastavená na „no-referrer“ zajišťuje, že během navigace na webu nebudou odesílány žádné informace o odkazujícím zdroji, čímž se maximalizuje soukromí.

Příklad konfigurace NGINX se zásadami refererů

Vaše konfigurace NGINX s hlavičkou Referrer-Policy by mohla vypadat takto:

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 přidání této hlavičky znovu načtěte NGINX pomocí příkazů jako sudo systemctl reload nginx nebo sudo nginx -s reload.

Možnosti a definice zásad doporučení

  • no-referrer: Nejsou odesílány žádné informace o refereru.
  • no-referrer-when-downgrade (výchozí): Odesílá informace o referreru pro cíle stejného původu nebo pro zabezpečené (HTTPS) cílové adresy URL ze zabezpečené stránky.
  • origin: Odešle pouze původ (schéma, hostitel a port).
  • origin-when-cross-origin: Odešle úplnou adresu URL pro požadavky stejného původu, ale pouze původ pro ostatní případy.
  • same-origin: Odešle úplný referrer pro požadavky stejného původu, ale žádnou hlavičku pro požadavky s křížovým původem.
  • strict-origin: Odešle původ pro požadavky HTTPS, ale žádnou hlavičku pro požadavky HTTP.
  • strict-origin-when-cross-origin: Odesílá úplný odkaz na požadavky stejného původu, původ do cílů HTTPS ze stránek HTTPS a žádné záhlaví do cílů HTTP.
  • unsafe-url: Odešle úplnou adresu URL bez ohledu na původ nebo zabezpečení (nedoporučuje se).

Rozšířené příklady konfigurace NGINX

Konfigurace 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
}

Tato konfigurace aplikuje hlavičku Referrer-Policy v zabezpečeném prostředí s podporou SSL/TLS, čímž se zvyšuje soukromí u šifrovaných připojení.

Konfigurace vícedoménového serveru

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

    # Additional configurations for each domain
}

Toto nastavení zajišťuje, že záhlaví Referrer-Policy se použije ve více doménách hostovaných na stejném serveru a zachová konzistentní nastavení soukromí.

Implementace zásad oprávnění v NGINX

Porozumění zásadám oprávnění

Záhlaví Permissions-Policy umožňuje správcům webu přesnou kontrolu nad funkcemi prohlížeče a rozhraními API na jejich webech. Konfigurace této hlavičky výrazně posiluje zabezpečení a soukromí webu a umožňuje omezení funkcí, jako je geolokace, kamera a mikrofon, na základě specifických potřeb vašeho webu.

Konfigurace zásad oprávnění v NGINX

Chcete-li do svého serveru NGINX začlenit hlavičku Permissions-Policy, upravte konfigurační soubor NGINX, který se obvykle nachází na /etc/nginx/nginx.conf nebo v adresáři /etc/nginx/sites-available/.

Přidejte následující direktivu do bloku serveru:

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=();";

Tato direktiva uvádí různé funkce prohlížeče a rozhraní API a všechny je nastavuje na (), což je účinně deaktivuje. Tato konfigurace poskytuje komplexní přístup k omezení funkcí, které by mohly ohrozit soukromí nebo zabezpečení uživatele.

Ukázka konfigurace NGINX se zásadami oprávnění

Zde je příklad toho, jak může vypadat vaše konfigurace NGINX s hlavičkou 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;
    }
}

Tato směrnice komplexně uvádí různé funkce prohlížeče a rozhraní API a nastavuje je na (), aby je účinně deaktivovala.

Ukázka konfigurace NGINX se zásadami oprávnění

Vaše konfigurace NGINX, včetně zásad oprávnění, může vypadat takto:

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;
    }
}

Po provedení těchto změn znovu načtěte NGINX pomocí sudo systemctl a znovu načtěte nginx nebo sudo nginx -s.

Vysvětlení možností oprávnění – zásad

Záhlaví Permissions-Policy vám umožňuje přizpůsobit použití různých funkcí:

  • geolokace: Řídí přístup ke geolokačním údajům.
  • midi: Spravuje přístup k zařízením MIDI.
  • oznámení: Řídí zobrazování oznámení.
  • TAM: Ovlivňuje funkci oznámení push.
  • sync-xhr: Týká se synchronního XMLHTTPRequest.
  • akcelerometr: Určuje přístup k akcelerometru zařízení.
  • gyroskop: Řídí přístup ke gyroskopu.
  • magnetometr: Spravuje přístup k magnetometru zařízení.
  • Způsob platby: Platí pro funkce žádosti o platbu.
  • usb: Řídí přístup k zařízením USB.
  • vr: Týká se funkcí virtuální reality.
  • Fotoaparát: Spravuje přístup k fotoaparátu.
  • mikrofon: Určuje přístup k mikrofonu.
  • mluvčí: Řídí přístup k reproduktorovým zařízením.
  • vibrovat: Ovlivňuje vibrační API.
  • senzor okolního světla: Týká se snímače okolního světla.
  • automatické přehrávání: Ovládá automatické přehrávání médií.
  • šifrovaná média: Spravuje přístup k šifrovaným médiím.
  • provést-schránka: Řídí přístup ke schránce pro čtení/zápis.
  • dokument-doména: Týká se funkce document.domain.
  • celá obrazovka: Určuje přístup na celou obrazovku.
  • imagecapture: Ovládá funkci snímání obrazu.
  • líná zátěž: Ovlivňuje líné načítání obrázků.
  • starší formáty obrázků: Týká se starších formátů obrázků.
  • nadrozměrné obrázky: Řídí načítání příliš velkých obrázků.
  • neoptimalizované-ztrátové-obrazy: Spravuje neoptimalizované ztrátové obrázky.
  • neoptimalizované bezztrátové obrázky: Týká se neoptimalizovaných bezztrátových obrázků.
  • unsized-media: Ovládá média bez explicitní velikosti.
  • vertikální rolování: Ovlivňuje vertikální rolování.
  • web-share: Týká se funkcí sdílení na webu.
  • xr-spatial-tracking: Řídí prostorové sledování XR.

Pokročilé konfigurace zásad oprávnění v NGINX

Konfigurace zásad oprávnění s konkrétními doménami a zástupnými znaky

Kromě základního nastavení deaktivace funkcí pomocí () lze Zásady oprávnění v NGINX upravit tak, aby povolovaly určité funkce z konkrétních domén nebo pomocí zástupných znaků. Tato pokročilá konfigurace umožňuje podrobnější kontrolu nad tím, k čemu a odkud může váš web přistupovat.

Příklad: Povolení funkcí z konkrétních domén

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;
    }
}

Tato konfigurace umožňuje přístup k geolokačním datům pouze z https://trusteddomain.com a přístup k mikrofonu pouze z https://alloweddomain.com, čímž se zvyšuje bezpečnost omezením těchto citlivých funkcí na důvěryhodné zdroje.

Příklad: Použití zástupných znaků pro široká oprávnění

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

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

Zástupný znak * v tomto nastavení umožňuje přístup k fotoaparátu a režim celé obrazovky z libovolné domény. Tento přístup nabízí širší oprávnění vhodná pro webové stránky, které vyžadují rozsáhlý přístup k funkcím z různých zdrojů.

Příklad: Kombinace omezení a oprávnění

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

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

V této konfiguraci je přístup k akcelerometru zakázán, přístup ke gyroskopu je povolen ze stejné domény a https://example2.com a požadavky na platby jsou povoleny ze všech domén.

Ověření záhlaví zabezpečení pomocí příkazu Curl v NGINX

Použití Curl ke kontrole záhlaví zabezpečení

Příkaz curl je cenným nástrojem pro ověření konfigurace bezpečnostních hlaviček na vašem serveru NGINX. Umožňuje vám zkontrolovat záhlaví vašeho webu a potvrdit, že jsou záhlaví zabezpečení správně nastavena. Tento ověřovací krok je zásadní pro zajištění toho, že bezpečnostní opatření vašeho webového serveru jsou aktivní a fungují tak, jak bylo zamýšleno.

Provedení příkazu Curl pro ověření záhlaví

Chcete-li zkontrolovat záhlaví svého webu, spusťte ve svém terminálu následující příkaz:

curl -I http://example.com

Nahraďte example.com názvem vaší domény. Tento příkaz vyžaduje záhlaví z vašeho serveru a poskytuje přehled o aktivních konfiguracích zabezpečení.

Očekávaný výstup a interpretace

Po spuštění příkazu curl byste měli obdržet výstup podobný následujícímu:

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=();"

Tento výstup potvrzuje přítomnost a správnou konfiguraci různých hlaviček zabezpečení na vašem serveru, jako jsou Strict-Transport-Security, Content-Security-Policy, X-XSS-Protection a další. Každá hlavička uvedená ve výstupu hraje specifickou roli při zabezpečení a ochraně vašeho webového serveru před různými webovými zranitelnostmi.

Závěr

Nakonfigurováním hlaviček zabezpečení v NGINX výrazně zvýšíte zabezpečení svých webových aplikací. Pravidelně kontrolujte a aktualizujte své bezpečnostní hlavičky, aby se přizpůsobily vyvíjejícím se bezpečnostním hrozbám. Implementace těchto hlaviček pomáhá chránit před širokou škálou útoků a zajišťuje uživatelům bezpečnější prohlížení. Udržujte ostražitost a udržujte svou konfiguraci NGINX aktuální, abyste mohli robustně chránit svá webová aktiva.

Joshua James
Následuj mě
Nejnovější příspěvky uživatele Joshua James (vidět vše)

Napsat komentář