|
|
| Ligne 1 : |
Ligne 1 : |
| − | ===<div style="color:#FFFFFF; background-color: #046AAF">'''X-FRAME-OPTIONS'''</div>===
| |
| | | | |
| − | L’en-tête HTTP X-Frame-Options permet d’indiquer aux navigateurs supportant cette extension, d’afficher ou non une page dans un champ HTML ‘<frame>’, ‘<iframe>’ ou ‘<object>’.
| |
| − |
| |
| − | L’Intérêt cet en-tête est de se protéger des attaques de type « ClickJacking », en s’assurant que le contenu du site internet à protéger ne soient pas embarqués dans d’autres sites.
| |
| − |
| |
| − |
| |
| − |
| |
| − | Il est possible d’utiliser 3 valeurs de paramétrage :
| |
| − |
| |
| − | *'''DENY :''' La page ne pourra pas être affichée dans une balise <(i)frame>
| |
| − |
| |
| − | *'''SAMEORIGIN :''' La page ne pourra être affichée dans une balise <(i)frame>que si la page provient du même domaine et du même port (SOP : Same Origin Policy )
| |
| − |
| |
| − | *'''ALLOW-FROM uri :''' La page ne pourra être affichée dans une balise <(i)frame> que si elle provient de l’origine spécifiée.
| |
| − |
| |
| − | Si vous spécifions DENY, il sera impossible de faire des frames dans le site Internet, même avec des pages internes.
| |
| − | Si vous souhaitez intégrer des frames de votre site (même domaine), il faudra utiliser SAMEORIGIN mais il faudra faire attention que les pages à inclure soient présentes sur le même protocole (par exemple il n’est pas possible d’inclure la page http://www.docapost.fr/page1.html depuis la page https://www.docapost.fr/page2.html).
| |
| − | Enfin, si vous avez besoin d'intégrer des pages externes, il faudra utiliser ALLOW-FROM et spécifier le domaine ou la page.
| |
| − |
| |
| − | ===<div style="color:#FFFFFF; background-color: #707173">'''Configuration'''</div>===
| |
| − |
| |
| − | <btn class="btn-primary">
| |
| − | x-frame-options-bigip|Bigip
| |
| − | </btn>
| |
| − |
| |
| − | <btn class="btn-primary">
| |
| − | x-frame-options-Apache|Apache
| |
| − | </btn>
| |
| − |
| |
| − | <btn class="btn-primary">
| |
| − | x-frame-options-iis|IIS
| |
| − | </btn>
| |
| − |
| |
| − | ===<div style="color:#FFFFFF; background-color: #046AAF">'''X-XSS-Protection'''</div>===
| |
| − |
| |
| − | Cet en-tête permet d’activer les filtres anti-xss incorporés dans certains navigateurs. Seuls Internet Explorer, Google Chrome et Safari (WebKit) supportent cet en-tête.
| |
| − |
| |
| − | Les réglages suivants sont valides :
| |
| − |
| |
| − | *0 : Désactive les protections XSS du navigateur (non recommandé)
| |
| − | *1 : Active les protections XSS du navigateur
| |
| − | *1 : mode=block : Active la protection XSS du navigateur et bloque la réponse au lieu de nettoyer les valeurs
| |
| − | *1 : report=http://site.com/report : Directive spécifique à Chrome et WebKit lui indiquant d’envoyer, via une requête POST, l’attaque XSS potentielle à l’url spécifiée au format JSON.
| |
| − |
| |
| − | ===<div style="color:#FFFFFF; background-color: #707173">'''Configuration'''</div>===
| |
| − |
| |
| − | <btn class="btn-primary">
| |
| − | x-xss-protection-bigip|Bigip
| |
| − | </btn>
| |
| − |
| |
| − | <btn class="btn-primary">
| |
| − | x-xss-protection-Apache|Apache
| |
| − | </btn>
| |
| − |
| |
| − | <btn class="btn-primary">
| |
| − | x-xss-protection-iis|IIS
| |
| − | </btn>
| |
| − |
| |
| − | ===<div style="color:#FFFFFF; background-color: #046AAF">'''Content-Security-Policy'''</div>===
| |
| − |
| |
| − | L’en-tête Content-Security-Policy permet de restreindre l’accès à une ressource (un script JavaScript, une feuille de style, etc.) dans une page web à certains sites autorisés. Cela permet par exemple d‘atténuer l’impact d’une éventuelle faille XSS en autorisant le chargement de script JavaScript que depuis le domaine du site Internet.
| |
| − |
| |
| − | Si le navigateur du client ne reconnaît pas cet en-tête, ce dernier l’ignore complètement, et le fonctionnement ne change pas.
| |
| − |
| |
| − | Il existe différents nommages de cet en-tête, suivant l’époque où il a été implémenté dans les navigateurs :
| |
| − |
| |
| − | *Content-Security-Policy : Définit par le W3C et utilisé par Chrome 25 et supérieur, FireFox 23 et supérieur, Opéra 19 et supérieur.
| |
| − | *X-Content-Security-Policy : Utilisé par Firefox jusqu’à la version 23 et Internet Explorer 10 (avec une implémentation partielle).
| |
| − | *X-WebKit-CSP : Utilisé par Chrome jusqu’à la version 25.
| |
| − | Les différentes directives utilisables sont :
| |
| − |
| |
| − | *default-src : Définit la politique pour les types ressources ou une directive spécifique n’est pas définie
| |
| − | *script-src : Définit quels scripts peuvent être exécutés
| |
| − | *object-src : Définit d’où la ressource peut charger des plugins
| |
| − | *style-src : Définit les feuilles de styles utilisables
| |
| − | *img-src : Définit d’où la ressource peut utiliser les images
| |
| − | *media-src : Définit d’où la ressource peut utiliser les vidéos et les sons
| |
| − | *frame-src : Définit d’où la ressource peut embarquer des frames
| |
| − | *font-src : Définit d’où la ressource peut utiliser des polices de caractères
| |
| − | *connect-src : Définit les URI que la ressource peut charger via scripting
| |
| − | *form-action : Définit les URI que la ressource peut utiliser comme action d’un élément de formulaire
| |
| − | *sandbox : Spécifie la politique de bac-à-sable HTML
| |
| − | *script-nonce : Définit l’exécution de script en exigeant la présence d’un nonce
| |
| − | *plugin-types : Définit une liste de plugins qui peuvent être invoqués
| |
| − | *reflected-xss : Permet d’activer ou désactiver les heuristiques des navigateurs pour la protection *XSS (identique à l’en-tête X-XSS-Protection)
| |
| − | *report-uri : Spécifie une URI vers laquelle le navigateur enverra un rapport en cas de violation de *politique
| |
| − |
| |
| − | ===<div style="color:#FFFFFF; background-color: #707173">'''Configuration'''</div>===
| |
| − |
| |
| − | <btn class="btn-primary">
| |
| − | csp-bigip|Bigip
| |
| − | </btn>
| |
| − |
| |
| − | <btn class="btn-primary">
| |
| − | csp-Apache|Apache
| |
| − | </btn>
| |
| − |
| |
| − | <btn class="btn-primary">
| |
| − | csp-iis|IIS
| |
| − | </btn>
| |
| − |
| |
| − | ===<div style="color:#FFFFFF; background-color: #046AAF">'''HTTP Strict Transport Security'''</div>===
| |
| − | HTTP Strict Transport Security
| |
| − | L’en-tête HTTP Strict Transport Security (HSTS) est un mécanisme de sécurité permettant à un serveur Web d’indiquer à un navigateur compatible d’utiliser une connexion sécurisée (HTTPS).
| |
| − |
| |
| − | Lorsque l’en-tête HSTS est activé, le navigateur compatible agit de la façon suivante :
| |
| − |
| |
| − | Il remplace tous les liens non sécurisés par des liens sécurisés (i.e. il remplace HTTP par HTTPS),
| |
| − | Si une connexion sécurisée ne peut être effectuée (Certificat auto-signé par exemple), le navigateur affiche un message d’erreur et interdit l’accès au site (il est impossible pour l’utilisateur d’accepter un certificat non valide).
| |
| − | Tous les navigateurs ne sont pas compatibles avec cet en-tête. Seuls les suivants le sont :
| |
| − |
| |
| − | *Google Chrome et Chromium depuis la version 4.0.211.0
| |
| − | *Firefox depuis la version 4.0
| |
| − | *Opera depuis la version 12
| |
| − | *Safari sous OS X Mavericks
| |
| − | *Spartan et Internet Explorer 11
| |
| − |
| |
| − | Note : L’extension pour Chrome, Firefox et Opera « HTTPS Everywhere » généralise le concept de HSTS.
| |
| − |
| |
| − | L’en-tête HSTS accepte différentes directives :
| |
| − |
| |
| − | *max-age : nombre de secondes, après la réception de l’en-tête, durant lesquelles le navigateur adoptera la politique
| |
| − | *includeSubDomains : indique qu’il faut appliquer la politique aussi sur les sous domaines
| |
| − | La directive max-age est obligatoire alors que la directive includeSubDomains ne l’est pas.
| |
| − |
| |
| − | Il convient de mettre une durée aussi longue que possible afin de s’assurer que la durée de navigation de l’utilisateur soit inférieure à ce temps limite. Par exemple, si vous spécifiez 86400 secondes, l’utilisateur peut naviguer et être protéger sur le site pendant 24 heures consécutives.
| |
| − |
| |
| − | Note : L’en-tête Strict-Transport-Security est ignoré par le navigateur si on accède à votre site en utilisant le protocole HTTP ; en effet, un attaquant malveillant peut intercepter les connexions via HTTP et injecter un autre en-tête ou le supprimer.
| |
| − |
| |
| − | Quand on accède à votre site via HTTPS sans erreur de certificat, le navigateur sait que le site est compatible HTTPS et respectera l’en-tête Strict-Transport-Security.
| |
| − |
| |
| − | ===<div style="color:#FFFFFF; background-color: #707173">'''Configuration'''</div>===
| |
| − |
| |
| − | <btn class="btn-primary">
| |
| − | hsts-bigip|Bigip
| |
| − | </btn>
| |
| − |
| |
| − | <btn class="btn-primary">
| |
| − | hsts-Apache|Apache
| |
| − | </btn>
| |
| − |
| |
| − | <btn class="btn-primary">
| |
| − | hsts-iis|IIS
| |
| − | </btn>
| |
| − |
| |
| − | ===<div style="color:#FFFFFF; background-color: #046AAF">'''X-Content-Type-Options'''</div>===
| |
| − |
| |
| − | Cet en-tête permet de faire une vérification stricte des types Mime. Elle n’accepte qu’une seule directive : nosniff.
| |
| − |
| |
| − | Si cet en-tête est spécifié, le navigateur compatible (Google Chrome ou Internet Explorer) ne chargera, par exemple, que les feuilles de style dont le type Mime est « text/css ».
| |
| − |
| |
| − | Cela permet de se protéger des attaques de type « drive-by-download ». Si cet en-tête n’est pas spécifié, le navigateur va essayer de déterminer le type de données en analysant le contenu de la ressource demandée.
| |
| − |
| |
| − | En ce qui concerne une référence à un script, le type Mime doit être un de ceux-ci :
| |
| − |
| |
| − | *application/ecmascript
| |
| − | *application/javascript
| |
| − | *application/x-javascript
| |
| − | *text/ecmascript
| |
| − | *text/javascript
| |
| − | *text/jscript
| |
| − | *text/x-javascript
| |
| − | *text/vbs
| |
| − | *text/vbscript
| |
| − |
| |
| − | ===<div style="color:#FFFFFF; background-color: #707173">'''Configuration'''</div>===
| |
| − |
| |
| − | <btn class="btn-primary">
| |
| − | x-content-type-options|Bigip
| |
| − | </btn>
| |
| − |
| |
| − | <btn class="btn-primary">
| |
| − | x-content-type-options|Apache
| |
| − | </btn>
| |
| − |
| |
| − | <btn class="btn-primary">
| |
| − | x-content-type-options|IIS
| |
| − | </btn>
| |