web-dev-qa-db-fra.com

Règles d'en-tête de sécurité .htaccess

J'ai une installation Wordpress auto-hébergée sur un système Linux et de nombreuses modifications telles que la liste noire et la réécriture de chemins, etc., sont effectuées dans le fichier .htaccess et fonctionnent correctement.

Cependant, j'ai ce bloc de règles:

<IfModule mod_headers.c>
   RewriteEngine On ## HAVE TRIED WITH THIS LINE THERE AND WITHOUT, NO CHANGE ##
   Header set X-XSS-Protection "1; mode=block"
   Header always append X-Frame-Options SAMEORIGIN
   Header set X-Content-Type-Options nosniff
</IfModule>

mais cela ne prend pas effet et n'est pas appliqué. J'ai vérifié la syntaxe et au mieux de la capacité et cohérente avec la documentation, elle est correcte. Ainsi, n'importe qui peut m'expliquer pourquoi il n'entre pas en vigueur et ce que je pourrais devoir faire pour le faire fonctionner.

J'apprécierais toute aide pour mieux comprendre ce qui se passe et où se situe le décalage. Je publierais le .htaccess ENTIER, mais le fait est qu’il est assez long et que je ne voulais pas encombrer le post. En outre, cela ne devrait pas avoir d'importance (du moins, je ne le pense pas), mais ce bloc se trouve à la toute fin du fichier.


Détails du site:

  • Version WordPress: 4.2.4
  • Courir sur: Apache
  • Propulsé par: PHP/5.5.26
1
GµårÐïåñ

Le RewriteEngine On line (comme vous l'avez indiqué) n'est pas nécessaire et concerne un module différent, mod_rewrite. Vous devriez le supprimer du bloc mod_headers.

Il est possible que le module Headers Apache ne soit pas installé ou activé sur votre hôte. S'il est possible d'exécuter le test avec une rupture, vous pouvez essayer de supprimer le bloc If et d'exécuter les commandes dans le contexte parent. Si cela échoue, c'est une bonne indication que cela ne fonctionnait pas car Headers n'était pas installé.

Si vous êtes sur un système Debian (Ubuntu, etc.), vous pouvez activer le module Headers Apache comme ceci via SSH:

Sudo a2enmod headers
Sudo service Apache2 restart
1
Kevin Fodness