Che cosa sono le intestazioni di sicurezza?
Le intestazioni di sicurezza sono intestazioni di risposta HTTP che istruiscono i browser come comportarsi quando si tratta di contenuti di un sito web, migliorando la protezione contro le vulnerabilità web comuni. Queste intestazioni aiutano a prevenire attacchi come scripting cross-site (XSS), clickjacking, iniezione di contenuti e attacchi di downgrade del protocollo. Le intestazioni di sicurezza configurate correttamente sono essenziali per strategie di sicurezza in profondità.Intestazioni di sicurezza essenziali
Intestazione Strict-Transport-Security (HSTS)
Forza connessioni HTTPS:
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
- Previene attacchi di downgrade del protocollo
- Blocchi contenuti misti
- Protegge contro la stripping SSL
Intestazione Content-Security-Policy (CSP)
Controlla il caricamento delle risorse:
Content-Security-Policy: default-src 'self'; script-src 'self' trusted.com; style-src 'self' 'unsafe-inline'
- Previene attacchi XSS
- Controlla le fonti di script
- Blocchi risorse non autorizzate
Intestazione X-Frame-Options
Previene il clickjacking:
X-Frame-Options: DENY
X-Frame-Options: SAMEORIGIN
- Blocchi sito da essere incorniciato
- Protegge contro l'interfaccia utente
Intestazione X-Content-Type-Options
Previene lo sniffo MIME:
X-Content-Type-Options: nosniff
- costringe il browser a rispettare dichiarato Content-Type
- Previene l'iniezione dello script tramite i file interpretati male
Intestazioni di sicurezza aggiuntive
| Intestazione | Oggetto | Esempio di valore |
|---|---|---|
| X-XSS-Protezione | Filtro XSS (leganza) | 1; modalità=blocco |
| Referrer-Policy | Control referrer info | rigoroso-origine-quando-cross-origin |
| Permissioni-Polizia | Limitazioni di funzionalità | geolocalizzazione=(), camera=() |
| Cross-Origin-Opener-Policy | Isolamento del processo | stesso-origine |
| Cross-Origin-Embedder-Policy | Isolamento delle risorse | richiesta-corp |
Esempi di implementazione
Configurazione Nginx
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Content-Security-Policy "default-src 'self'" always;
Configurazione Apache
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-Content-Type-Options "nosniff"
Intestazioni di sicurezza e salute del dominio
Perché le intestazioni sono importanti per i domini
- Proteggere gli utenti che visitano il dominio
- Prevenire danni di reputazione di dominio
- soddisfare i requisiti di conformità
- Difendere dagli attacchi comuni
Test delle intestazioni di sicurezza
Strumenti per verificare l'implementazione:
- securityheaders.com
- Osservatorio Mozilla
- Laboratori SSL
- scheda Chrome DevTools Network
Migliori Pratiche
1. Inizia con HSTS. Essenziale per l'applicazione HTTPS
2. Implementare CSP gradualmente Iniziare con la modalità solo rapporto
3. Test accuratamente Gli intestazioni possono rompere la funzionalità
4. Utilizzare liste di precarico: Inserisci le liste di precarico del browser
5. Violazioni motorie Utilizzare gli endpoint di segnalazione CSP
6. Controlli regolari: Evoluzione dei requisiti di sicurezza
Criteri comuni di valutazione
| Grado | Requisiti tipici |
|---|---|
| A+ | Tutte le intestazioni critiche, precarico HSTS |
| A | HSTS, CSP, X-Frame-Options, X-Content-Type |
| B | Alcuni intestazioni mancanti |
| C/D | Intestazioni minime di sicurezza |
| F | Nessun intestazione di sicurezza |
Le intestazioni di sicurezza rappresentano uno strato critico della sicurezza delle applicazioni web, fornendo protezione rinforzata dal browser che completa le misure di sicurezza lato server.