Définition
X-Frame-Options est une entête HTTP qui permet de contrôler comment les sites internet externes peuvent “encapsuler” le vôtre.
L’usage de cette entête est recommandé, d’autant qu’elle est simple à gérer et son bénéfice de sécurité est important.
Cette entête remplace l’historique entête Frame-Options
, et est
elle-même remplacée par la directive frame-ancestors
de l’entête
CSP
!
Elle fait partie des entêtes de base à générer pour protéger son site web, au même titre que l’usage de HSTS , et des autres entêtes X-*-Options, telles que X-Content-Type , X-XSS-Protections ,…
Options
3 options sont permises :
DENY
: interdit aux autres de mettre votre site dans une iframe. C’est l’option recommandée !SAMEORIGIN
: permet d’être mis dans une frame, à-partir de votre propre site.ALLOW-FROM uri
: Cette option est dépréciée - il est clairement recommandée de ne plus l’utiliser au profit de la directiveframe-ancestors
gérée par l’entête CSP .
Exemples
X-Frame-Options: DENY
nginx
add_header X-Frame-Options "DENY" always;
relayd
Et, oui, malheureusement, httpd ne peut pas gérer les entêtes, ce sera son binôme relayd(8) que l’on utilisera !
match response header set "X-Frame-Options" value "DENY"
Documentations
- Différentes techniques de protections : https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet
- Support actuel : http://caniuse.com/#search=X-Frame-Options