Protégez votre site Web contre les attaques de clic en mettant en œuvre l'en-tête CSP (Content Security Policy)
CSP est l'un des 10 principaux en-têtes sécurisés de l'OWASP et est souvent recommandé par les experts en sécurité ou les outils pour l'implémenter. Il existe de nombreuses options pour créer la stratégie afin d'appliquer la manière dont vous souhaitez exposer vos ressources Web.
L'une des directives appelées frame-ancestors
qui ont été introduits dans CSP version 2 donne plus de flexibilité par rapport à la En-tête X-Frame-Options. frame-ancestors
fonctionne de la même manière que les options X-Frame pour autoriser ou interdire l'intégration des ressources à l'aide de iframe, frame, object, embed et applet element.
Je pense que X-Frame-Options sera obsolète dans un proche avenir lorsque CSP sera entièrement compatible avec tous les principaux navigateurs. Au moment où j'écris, Ancêtres du cadre CSP fonctionne avec toutes les dernières versions de navigateur sauf IE.
Je ne sais pas quand Microsoft autorisera le support sur IE. Vous pouvez toujours vérifier la compatibilité du navigateur sur Puis-je utiliser le site.
Jetons un coup d'œil à la procédure de mise en œuvre suivante.
Apache HTTP
mod_headers
est le prérequis pour injecter des en-têtes dans Apache. Selon le système d'exploitation et la version, mais si vous utilisez Ubuntu et Apache 2.4, vous pouvez utiliser a2enmod headers
pour l'activer.
root@geekflare:/etc/apache2# a2enmod headers
Enabling module headers.
To activate the new configuration, you need to run:
systemctl restart apache2
root@geekflare:/etc/apache2# systemctl restart apache2
root@geekflare:/etc/apache2#
Notez les: toute la configuration que vous pouvez faire soit httpd.conf
fichier ou tout fichier de configuration efficace que vous utilisez.
REFUSER DE TOUS
Similaire à X-Frame-Options DENY. Si vous ne souhaitez pas qu'un site (y compris soi-même) soit intégré, ajoutez ce qui suit.
Header set Content-Security-Policy "frame-ancestors 'none';"
Enregistrez le fichier et redémarrez Apache HTTP pour prendre effet.
J'ai essayé d'intégrer le site et comme vous pouvez le voir, il était bloqué.
Permettre de soi mais REFUSER les autres
Similaire à X-Frame-Options SAMEORIGIN, vous pouvez ajouter ce qui suit.
Header set Content-Security-Policy "frame-ancestors 'self';"
Autoriser de soi et de plusieurs domaines
X-Frame-Options n'avait pas d'option pour autoriser à partir de plusieurs domaines. Grâce à CSP, vous pouvez faire comme ci-dessous.
Header set Content-Security-Policy "frame-ancestors 'self' 'geekflare.com' 'gf.dev' 'geekflare.dev';"
Ce qui précède permettra au contenu d'être intégré à partir de self, geekflare.com, gf.dev, geekflare.dev. Changez ces domaines avec le vôtre.
Nginx
Le concept et la directive sont les mêmes que ceux expliqués ci-dessus dans la section HTTP Apache, sauf pour la façon dont vous ajoutez l'en-tête. Les en-têtes dans Nginx doivent être ajoutés sous le server
bloc dans un fichier de configuration correspondant.
Nier tous
add_header Content-Security-Policy "frame-ancestors 'none';";
REFUSER tout mais pas soi-même
add_header Content-Security-Policy "frame-ancestors 'self';";
Autoriser à partir de plusieurs domaines
add_header Content-Security-Policy "frame-ancestors 'yoursite.com' 'example.com';";
L'exemple ci-dessus permettra d'intégrer du contenu sur yoursite.com et example.come. Après avoir apporté des modifications, n'oubliez pas de redémarrer le serveur Nginx pour tester la politique.
WordPress
Cela dépend de la façon dont vous hébergez WordPress.
Si vous êtes auto-hébergé comme un cloud ou un VPS, vous utilisez peut-être un serveur Web tel qu'Apache ou Nginx. Si tel est le cas, vous pouvez suivre ce qui précède pour implémenter dans le serveur Web au lieu de WordPress. Cependant, si vous sur l'hébergement mutualisé ou pas d'accès pour modifier les serveurs Web, vous pouvez alors utiliser un plugin.
Pour implémenter CSP dans WordPress, vous pouvez utiliser le Plug-in Content Security Policy Pro.
Vérification
Une fois que vous avez terminé la mise en œuvre, vous pouvez utiliser les outils de développement intégrés du navigateur ou un outil de test des en-têtes sécurisés.
Conclusion
CSP est l'un des puissants, en-têtes sécurisés pour éviter les vulnérabilités Web. J'espère que les instructions ci-dessus vous guideront sur la façon d'implémenter des ancêtres de cadres dans Apache et Nginx.