Pourquoi les en-tetes de securite sont importants
Les en-tetes de securite HTTP sont des instructions que votre serveur web envoie au navigateur, lui indiquant comment se comporter lors du traitement du contenu de votre site. Ils constituent l'une des mesures de securite les plus efficaces et les moins couteuses que vous puissiez mettre en oeuvre. Aucune modification du code de votre application. Aucune nouvelle dependance. Juste quelques lignes de configuration serveur.
Pourtant, la majorite des sites web que nous auditons manquent d'en-tetes de securite critiques. Moins de 15% des premiers millions de sites web ont un en-tete Content-Security-Policy.
Content-Security-Policy (CSP)
CSP est l'en-tete de securite le plus puissant et le plus complexe. Il controle quelles ressources le navigateur est autorise a charger sur votre page. Un CSP correctement configure est votre meilleure defense contre les attaques Cross-Site Scripting (XSS).
Directives cles
| Directive | Controle | Valeurs courantes |
|---|---|---|
default-src |
Repli pour tous les types de ressources | 'self' |
script-src |
Sources JavaScript | 'self', domaines CDN specifiques |
style-src |
Sources CSS | 'self' 'unsafe-inline' |
img-src |
Sources d'images | 'self' data: https: |
frame-ancestors |
Qui peut integrer votre site | 'none' |
object-src |
Flash, applets Java | 'none' |
Le probleme 'unsafe-inline'
L'alternative correcte est d'utiliser des nonces ou des hashes pour les scripts.
Rapports CSP
Commencez avec Content-Security-Policy-Report-Only pour tester votre politique sans rien bloquer.
Erreurs CSP courantes
- Utiliser
'unsafe-inline'et'unsafe-eval'pour les scripts. - Wildcards trop permissifs.
- Oublier
object-src 'none'. - Manque de
base-uri. - Ne pas surveiller les rapports.
X-Frame-Options
Controle si votre site peut etre integre dans un iframe. Protege contre le clickjacking.
Recommandation : X-Frame-Options: DENY
X-Content-Type-Options
Empeche le MIME type sniffing.
X-Content-Type-Options: nosniff
Referrer-Policy
Controle les informations de referrer envoyees par le navigateur.
Recommandation : Referrer-Policy: strict-origin-when-cross-origin
Permissions-Policy
Controle quelles fonctionnalites du navigateur votre site peut utiliser.
Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=()
Strict-Transport-Security (HSTS)
Indique aux navigateurs de ne se connecter a votre site que via HTTPS. Pour une discussion plus large, consultez notre guide des certificats SSL/TLS.
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Strategie de deploiement
- Commencez avec
max-age=300(5 minutes). - Augmentez a
max-age=86400(1 jour). - Augmentez a
max-age=604800(1 semaine). - Passez a
max-age=31536000(1 an) avecincludeSubDomainsetpreload.
Exemples d'implementation
Nginx
Ajoutez dans le bloc server de nginx.conf avec le mot-cle always.
Apache
Ajoutez dans .htaccess ou la configuration du virtual host. Assurez-vous que mod_headers est active.
Cloudflare
Transform Rules, Workers, ou fichier _headers pour Cloudflare Pages.
Impact sur la securite
| Protection | Sans en-tetes | Avec en-tetes |
|---|---|---|
| Attaques XSS | Vulnerable | Attenue par CSP |
| Clickjacking | Vulnerable | Bloque par X-Frame-Options |
| MIME sniffing | Vulnerable | Empeche par X-Content-Type-Options |
| SSL stripping | Vulnerable a la premiere visite | Empeche par HSTS |
| Note securityheaders.com | D ou F | A ou A+ |
En-tetes de securite et OWASP
Beaucoup des en-tetes discutes repondent directement aux risques OWASP Top 10. Pour en savoir plus, consultez notre article OWASP Top 10 explique.
Plan d'implementation par etapes
Phase 1 : Gains rapides (Jour 1)
X-Content-Type-Options, X-Frame-Options, Referrer-Policy, Permissions-Policy.
Phase 2 : HSTS (Semaine 1-2)
Commencez avec un max-age bas et augmentez progressivement.
Phase 3 : CSP (Semaine 2-4)
Deployer en mode report-only, analyser, renforcer, activer l'enforcement.
Conclusion
Les en-tetes de securite offrent l'un des meilleurs retours sur investissement en matiere de securite. Votre objectif devrait etre un A+ sur securityheaders.com. Si vous avez besoin d'aide, contactez notre equipe a Lugano.
Vous voulez savoir si votre site est sécurisé ?
Demandez un audit de sécurité gratuit. En 48 heures vous recevez un rapport complet.
Demander un Audit Gratuit