Come configurare le intestazioni di sicurezza in Nginx

La configurazione delle intestazioni di sicurezza in NGINX è essenziale per migliorare la sicurezza delle tue applicazioni web. Le intestazioni di sicurezza proteggono da vari attacchi, come cross-site scripting (XSS), clickjacking e altri attacchi di iniezione di codice. Istruiscono il browser su come gestire il contenuto del tuo sito, fornendo un ulteriore livello di sicurezza.

Questa guida ti guiderà attraverso i passaggi per configurare le intestazioni di sicurezza in NGINX, aiutandoti a salvaguardare le tue applicazioni web e a migliorare la sicurezza generale.

Implementazione di HTTP Strict Transport Security (HSTS) in NGINX

Comprendere l'HSTS

HTTP Strict Transport Security (HSTS) è un protocollo fondamentale per la sicurezza dei siti Web. Impone che le connessioni a un dominio avvengano esclusivamente tramite HTTPS. Ciò mitiga i rischi come gli attacchi man-in-the-middle e garantisce l’integrità e la riservatezza dei dati trasmessi online. Quando un utente tenta di accedere a un sito tramite HTTP, HSTS aggiorna automaticamente la connessione a HTTPS.

Configurazione di HSTS in NGINX

Per configurare HSTS in NGINX, è necessario aggiornare il blocco server nel file di configurazione NGINX. Questo file in genere risiede in /etc/nginx/nginx.conf o all'interno di configurazioni specifiche del sito in /etc/nginx/sites-available/. L'aggiornamento prevede l'aggiunta di un'intestazione che indica al browser di utilizzare sempre HTTPS per il dominio specificato.

Nel blocco server del tuo dominio, aggiungi la seguente riga:

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

Questa linea contiene due componenti:

  • max-age=31536000: indica al browser di ricordarsi di utilizzare HTTPS per il tuo sito per i prossimi 12 mesi.
  • includeSubDomains: applica la politica HSTS a tutti i sottodomini del tuo sito per una sicurezza completa.

Esempio di configurazione NGINX con HSTS

La tua configurazione NGINX con l'intestazione HSTS potrebbe assomigliare a questa:

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

Dopo aver aggiunto questa intestazione, ricarica NGINX per attuare le modifiche con sudo systemctl reload nginx o sudo nginx -s reload.

Ulteriori esempi di configurazione NGINX

Per scenari diversi, la configurazione NGINX con HSTS potrebbe variare. Ecco ulteriori esempi:

Server multidominio

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

    location / {
        # Configuration details
    }
}

Questa configurazione applica HSTS a più domini ospitati sullo stesso server. Ogni dominio elencato applicherà le connessioni HTTPS.

Server con terminazione 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
    }
}

Questa configurazione è per i server che gestiscono la terminazione SSL. Configura HSTS su una porta sicura (443) con certificati SSL specificati, rafforzando le connessioni sicure.

Configurazione della policy di sicurezza dei contenuti (CSP) in NGINX

Implementazione del CSP in NGINX

L’integrazione di una Content-Security-Policy (CSP) in NGINX è una mossa strategica per migliorare la sicurezza delle applicazioni web. Implica l'aggiunta di un'intestazione specifica all'interno del blocco server del file di configurazione NGINX. Solitamente reperibile in /etc/nginx/nginx.conf o nella directory /etc/nginx/sites-available/, questo file richiede un'attenta modifica per applicare efficacemente CSP.

Per una configurazione CSP fondamentale, aggiungi la seguente riga nel blocco server:

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

Questa direttiva limita il caricamento dei contenuti al dominio del sito web ("self"), riducendo significativamente il rischio di esecuzione di contenuti esterni dannosi.

Esempio di configurazione NGINX con CSP

La tua configurazione NGINX con la direttiva CSP di base potrebbe assomigliare a questa:

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

Ricarica NGINX con sudo systemctl reload nginx o sudo nginx -s reload dopo aver aggiunto questa direttiva.

Personalizzazione del CSP per esigenze specifiche

Il CSP può essere personalizzato per soddisfare le esigenze di sicurezza specifiche del tuo sito web. Di seguito sono riportate le configurazioni estese per diversi scenari:

Consentire immagini da qualsiasi fonte

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

Questa configurazione consente di caricare immagini da qualsiasi fonte, mantenendo uno stretto controllo su altri tipi di contenuto.

Configurazione di script e stili specifici

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

Questa impostazione consente gli script del tuo dominio e di una fonte esterna attendibile insieme agli stili incorporati, bilanciando funzionalità e sicurezza.

Esplorazione delle direttive e delle opzioni CSP

Direttive nel CSP

Le direttive CSP sono regole che definiscono la policy per tipi di contenuto specifici. Le direttive comuni includono:

  • default-src: la policy predefinita applicata alla maggior parte dei tipi di contenuto.
  • script-src: governa le fonti per le risorse JavaScript.
  • style-src: specifica le origini consentite per le risorse CSS.
  • img-src: controlla le origini per le risorse immagine.
  • connect-src: imposta i criteri per le connessioni di rete come XMLHttpRequest, WebSocket e EventSource.

Espressioni di origine in CSP

Le espressioni di origine definiscono le fonti consentite per ciascuna direttiva:

  • 'none': blocca tutte le fonti.
  • 'self': consente risorse dalla stessa origine.
  • 'unsafe-inline': consente risorse in linea come stili o URL JavaScript.
  • 'unsafe-eval': consente JavaScript eval() funzioni e metodi simili.
  • https:: Abilita le risorse da qualsiasi URL HTTPS.

Configurazione della protezione X-XSS in NGINX

Introduzione alla protezione X-XSS

X-XSS-Protection, o Cross-Site Scripting header, è essenziale per proteggere le applicazioni web dagli attacchi XSS (Cross-Site Scripting). Supportata dai principali browser Web come Chrome, Internet Explorer e Safari, questa intestazione migliora la sicurezza Web impedendo il caricamento di pagine quando vengono rilevati attacchi XSS riflessi.

Abilitazione della protezione X-XSS in NGINX

L'integrazione dell'intestazione X-XSS-Protection nella configurazione del server NGINX rafforza la protezione XSS nativa del browser. Per abilitare questa funzionalità di sicurezza, accedi al file di configurazione NGINX, in genere situato in /etc/nginx/nginx.conf o nella directory /etc/nginx/sites-available/.

Nel blocco server del tuo file di configurazione NGINX, inserisci questa direttiva:

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

Questa direttiva si compone di due parti:

  • 1: attiva il filtro XSS del browser.
  • mode=block: indica al browser di bloccare la pagina se viene rilevato un attacco XSS, anziché tentare di disinfettarla.

Esempio di configurazione NGINX con protezione X-XSS

Un esempio di configurazione NGINX che include X-XSS-Protection potrebbe apparire come segue:

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

Dopo aver aggiunto questa intestazione, ricarica NGINX utilizzando sudo systemctl reload nginx o sudo nginx -s reload.

Ulteriori scenari di configurazione NGINX

Per un server con 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
}

Questa configurazione è per server con SSL, garantendo che X-XSS-Protection sia attiva su connessioni crittografate.

Gestione di più domini

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

    # Further configuration
}

Questa configurazione applica la protezione X-XSS su più domini ospitati su un singolo server.

Configurazione delle opzioni X-Frame in NGINX

Il ruolo delle opzioni X-Frame

X-Frame-Options è un'intestazione di sicurezza essenziale progettata per proteggere i siti Web dagli attacchi di clickjacking. Impedisce la visualizzazione delle pagine Web in frame o iframe, spesso utilizzati in questi attacchi. Supportato da tutti i principali browser Web, X-Frame-Options fornisce una protezione diffusa, migliorando la sicurezza della tua presenza sul Web su diverse piattaforme.

Implementazione delle opzioni X-Frame in NGINX

Incorporare l'intestazione X-Frame-Options nella configurazione del tuo server NGINX è fondamentale per migliorare la sicurezza del tuo sito. Questa attività prevede la modifica del file di configurazione NGINX, generalmente disponibile in /etc/nginx/nginx.conf o nella directory /etc/nginx/sites-available/.

Per abilitare questa funzionalità di sicurezza, aggiungi la seguente direttiva al blocco server nel file di configurazione NGINX:

add_header X-Frame-Options "DENY";

Questa direttiva, impostata su "DENY", indica al browser di bloccare qualsiasi tentativo di visualizzare la pagina in un frame o iframe, offrendo una solida difesa contro il clickjacking.

Esempio di configurazione NGINX con opzioni X-Frame

Un esempio di configurazione NGINX con l'intestazione X-Frame-Options è il seguente:

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

Una volta aggiunta questa intestazione, è importante ricaricare NGINX per attivare le modifiche. Questo può essere fatto usando sudo systemctl reload nginx o sudo nginx -s reload.

Espansione della configurazione NGINX per le opzioni X-Frame

Per server abilitati 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
}

Questa configurazione è per server con SSL, garantendo che X-Frame-Options venga applicato su connessioni sicure.

Gestione di più domini

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

    # Additional configuration
}

Questa configurazione applica l'intestazione X-Frame-Options su più domini sullo stesso server, rafforzando la sicurezza per ciascun dominio.

Implementazione delle opzioni X-Content-Type in NGINX

Ruolo delle opzioni del tipo di contenuto X

X-Content-Type-Options è un'intestazione di sicurezza vitale nella sicurezza web che impedisce ai browser di eseguire lo sniffing di tipo MIME. Questa intestazione rafforza il fatto che i browser rispettano il tipo di contenuto dichiarato nelle intestazioni HTTP, risolvendo le vulnerabilità di sicurezza che possono sorgere quando i browser interpretano erroneamente i tipi di file, come trattare i file di immagine come HTML eseguibile, il che potrebbe portare ad attacchi cross-site scripting (XSS).

Configurazione delle opzioni X-Content-Type in NGINX

Per migliorare la sicurezza del tuo server web con l'intestazione X-Content-Type-Options, devi modificare direttamente il file di configurazione NGINX. Questo file si trova solitamente in /etc/nginx/nginx.conf o all'interno di configurazioni specifiche del sito in /etc/nginx/sites-available/.

Incorpora questa intestazione aggiungendo la seguente riga al file server blocco della tua configurazione NGINX:

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

L'impostazione "nosniff" indica al browser di seguire rigorosamente il tipo di contenuto specificato dal server, impedendo interpretazioni alternative del contenuto.

Esempio di configurazione NGINX con opzioni X-Content-Type

Una configurazione NGINX con X-Content-Type-Options potrebbe essere strutturata come segue:

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

Dopo aver aggiornato la configurazione, assicurati di ricaricare NGINX affinché le modifiche abbiano effetto, utilizzando sudo systemctl reload nginx o sudo nginx -s reload.

Esempi di configurazione NGINX espansi

Configurazione per 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
}

Questa configurazione è per server con SSL/TLS, applicando X-Content-Type-Options su connessioni sicure per migliorare la sicurezza.

Configurazione server multidominio

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

    # Additional configurations for multiple domains
}

Questa configurazione applica l'intestazione X-Content-Type-Options su più domini ospitati sullo stesso server, garantendo impostazioni di sicurezza coerenti su tutti i domini.

Configurazione della policy di riferimento in NGINX

La funzione della politica di riferimento

Referrer-Policy è un'intestazione HTTP essenziale per migliorare la privacy e la sicurezza degli utenti sul Web. Controlla la quantità di informazioni sui referral incluse nell'intestazione Referer quando gli utenti navigano dal tuo sito ad altri, proteggendo le informazioni sensibili dall'esposizione nelle richieste web.

Impostazione della politica di riferimento in NGINX

Per implementare l'intestazione Referrer-Policy nel tuo server NGINX, modifica il file di configurazione NGINX, generalmente disponibile in /etc/nginx/nginx.conf o nella directory /etc/nginx/sites-available/. Aggiungi la seguente direttiva al blocco del server:

add_header Referrer-Policy "no-referrer";

Questa direttiva, impostata su “no-referrer”, garantisce che non vengano inviate informazioni sui referrer durante la navigazione del sito, massimizzando la privacy.

Esempio di configurazione NGINX con policy di riferimento

La tua configurazione NGINX con l'intestazione Referrer-Policy potrebbe assomigliare a questa:

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

Dopo aver aggiunto questa intestazione, ricarica NGINX con comandi come sudo systemctl reload nginx o sudo nginx -s reload.

Opzioni e definizioni della politica di riferimento

  • no-referrer: non viene inviata alcuna informazione sul referrer.
  • no-referrer-when-downgrade (impostazione predefinita): invia informazioni sul referrer per destinazioni della stessa origine o per URL di destinazione sicuri (HTTPS) da una pagina protetta.
  • origine: invia solo l'origine (schema, host e porta).
  • origin-when-cross-origin: invia l'URL completo per le richieste della stessa origine ma solo l'origine per gli altri casi.
  • stessa origine: invia un referrer completo per le richieste della stessa origine ma nessuna intestazione per le richieste multiorigine.
  • strict-origin: invia l'origine per le richieste HTTPS ma nessuna intestazione per le richieste HTTP.
  • strict-origin-when-cross-origin: invia il referrer completo alle richieste della stessa origine, l'origine alle destinazioni HTTPS dalle pagine HTTPS e nessuna intestazione alle destinazioni HTTP.
  • unsafe-url: invia l'URL completo indipendentemente dall'origine o dalla sicurezza (non consigliato).

Esempi di configurazione NGINX espansi

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

Questa configurazione applica l'intestazione Referrer-Policy in un ambiente sicuro, abilitato per SSL/TLS, migliorando la privacy sulle connessioni crittografate.

Configurazione server multidominio

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

    # Additional configurations for each domain
}

Questa configurazione garantisce che l'intestazione Referrer-Policy venga applicata su più domini ospitati sullo stesso server, mantenendo impostazioni di privacy coerenti.

Implementazione della politica di autorizzazione in NGINX

Comprensione della politica delle autorizzazioni

L'intestazione Permissions-Policy consente agli amministratori web un controllo preciso sulle funzionalità del browser e sulle API sui loro siti web. La configurazione di questa intestazione rafforza in modo significativo la sicurezza e la privacy del sito, abilitando restrizioni su funzionalità come geolocalizzazione, fotocamera e microfono in base alle esigenze specifiche del tuo sito.

Configurazione della politica di autorizzazione in NGINX

Per incorporare l'intestazione Permissions-Policy nel tuo server NGINX, modifica il file di configurazione NGINX, solitamente situato in /etc/nginx/nginx.conf o nella directory /etc/nginx/sites-available/.

Aggiungi la seguente direttiva al blocco del server:

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

Questa direttiva elenca varie funzionalità e API del browser, impostandole tutte su () che le disabilita di fatto. Questa configurazione fornisce un approccio completo alla limitazione delle funzionalità che potrebbero compromettere la privacy o la sicurezza dell'utente.

Esempio di configurazione NGINX con policy di autorizzazione

Ecco un esempio di come potrebbe apparire la tua configurazione NGINX con l'intestazione 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;
    }
}

Questa direttiva elenca in modo completo varie funzionalità e API del browser, impostandole su () per disabilitarle in modo efficace.

Esempio di configurazione NGINX con policy di autorizzazione

La tua configurazione NGINX, inclusa la policy di autorizzazione, potrebbe apparire così:

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

Ricarica NGINX con sudo systemctl reload nginx o sudo nginx -s reload dopo aver apportato queste modifiche.

Spiegazione delle opzioni delle policy di autorizzazione

L'intestazione Permissions-Policy ti consente di personalizzare l'utilizzo di varie funzionalità:

  • geolocalizzazione: controlla l'accesso ai dati di geolocalizzazione.
  • midi: Gestisce l'accesso ai dispositivi MIDI.
  • notifiche: Gestisce la visualizzazione delle notifiche.
  • spingere: influisce sulla funzionalità di notifica push.
  • sincronizzazione-xhr: si riferisce alla XMLHTTPRequest sincrona.
  • accelerometro: impone l'accesso all'accelerometro del dispositivo.
  • giroscopio: Controlla l'accesso al giroscopio.
  • magnetometro: Gestisce l'accesso al magnetometro del dispositivo.
  • pagamento: Si applica alle funzionalità di richiesta di pagamento.
  • USB: regola l'accesso ai dispositivi USB.
  • vr: riguarda le funzionalità della realtà virtuale.
  • telecamera: Gestisce l'accesso alla fotocamera.
  • microfono: impone l'accesso al microfono.
  • altoparlante: controlla l'accesso ai dispositivi altoparlanti.
  • vibrare: Influisce sull'API di vibrazione.
  • sensore di luce ambientale: Si riferisce al sensore di luce ambientale.
  • riproduzione automatica: controlla la riproduzione automatica dei contenuti multimediali.
  • supporto crittografato: Gestisce l'accesso ai media crittografati.
  • esegui-appunti: regola l'accesso in lettura/scrittura agli appunti.
  • dominio-documento: riguarda la funzionalità document.domain.
  • a schermo intero: impone l'accesso a schermo intero.
  • acquisizione di immagini: controlla la funzionalità di acquisizione delle immagini.
  • lazyload: influisce sul caricamento lento delle immagini.
  • formati di immagini legacy: si riferisce ai formati immagine legacy.
  • immagini di grandi dimensioni: Gestisce il caricamento di immagini di grandi dimensioni.
  • immagini con perdita di dati non ottimizzate: Gestisce le immagini con perdita di dati non ottimizzate.
  • immagini senza perdita di dati non ottimizzate: riguarda immagini senza perdita di dati non ottimizzate.
  • media non dimensionati: controlla i media senza dimensioni esplicite.
  • scorrimento verticale: Influisce sullo scorrimento verticale.
  • condivisione web: si riferisce alle funzionalità di condivisione Web.
  • xr-tracciamento-spaziale: Gestisce il tracciamento spaziale XR.

Configurazioni avanzate della policy di autorizzazione in NGINX

Configurazione della policy di autorizzazione con domini e caratteri jolly specifici

Oltre all'impostazione di base per disabilitare le funzionalità utilizzando (), la policy di autorizzazione in NGINX può essere personalizzata per consentire determinate funzionalità da domini specifici o utilizzando caratteri jolly. Questa configurazione avanzata consente un controllo più sfumato su ciò a cui il tuo sito web può accedere e da dove.

Esempio: autorizzazione di funzionalità da domini specifici

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

Questa configurazione consente l'accesso ai dati di geolocalizzazione solo da https://trusteddomain.com e l'accesso al microfono esclusivamente da https://alloweddomain.com, migliorando la sicurezza limitando queste funzionalità sensibili a fonti attendibili.

Esempio: utilizzo di caratteri jolly per autorizzazioni generali

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

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

Il carattere jolly * in questa configurazione consente l'accesso alla telecamera e la modalità a schermo intero da qualsiasi dominio. Questo approccio offre autorizzazioni più ampie, adatte a siti Web che richiedono un ampio accesso alle funzionalità da varie fonti.

Esempio: combinazione di restrizioni e autorizzazioni

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

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

In questa configurazione, l'accesso all'accelerometro è disabilitato, l'accesso al giroscopio è consentito dallo stesso dominio e da https://example2.com e le richieste di pagamento sono consentite da tutti i domini.

Verifica delle intestazioni di sicurezza con il comando Curl in NGINX

Utilizzo di Curl per controllare le intestazioni di sicurezza

Il comando curl è uno strumento prezioso per verificare la configurazione delle intestazioni di sicurezza nel tuo server NGINX. Ti consente di ispezionare le intestazioni del tuo sito web e confermare che le intestazioni di sicurezza siano impostate correttamente. Questo passaggio di verifica è fondamentale per garantire che le misure di sicurezza del tuo server web siano attive e funzionino come previsto.

Esecuzione del comando Curl per la verifica dell'intestazione

Per controllare le intestazioni del tuo sito web, esegui il seguente comando nel tuo terminale:

curl -I http://example.com

Sostituisci example.com con il tuo nome di dominio. Questo comando richiede le intestazioni dal tuo server, fornendo informazioni dettagliate sulle configurazioni di sicurezza attive.

Risultati attesi e interpretazione

Dopo aver eseguito il comando curl, dovresti ricevere un output simile al seguente:

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

Questo output conferma la presenza e la corretta configurazione di varie intestazioni di sicurezza sul tuo server, come Strict-Transport-Security, Content-Security-Policy, X-XSS-Protection e altre. Ogni intestazione elencata nell'output svolge un ruolo specifico nel proteggere e proteggere il tuo server web da varie vulnerabilità web.

Conclusione

Configurando le intestazioni di sicurezza in NGINX, migliorerai in modo significativo la sicurezza delle tue applicazioni web. Rivedi e aggiorna regolarmente le intestazioni di sicurezza per adattarle all'evoluzione delle minacce alla sicurezza. L'implementazione di queste intestazioni aiuta a proteggersi da un'ampia gamma di attacchi e garantisce un'esperienza di navigazione più sicura per i tuoi utenti. Mantieni la vigilanza e mantieni aggiornata la configurazione NGINX per proteggere in modo efficace le tue risorse web.

Joshua James
Seguimi
Ultimi post di Joshua James (vedi tutto)

Lascia un commento