web-dev-qa-db-fra.com

Comment améliorer la sécurité de WordPress en masquant les fichiers non publics?

par exemple.

curl -I http://ma.tt/blog/wp-config.php
200 OK

Le fichier wp-config.php n'est pas public, car il ne renvoie pour l'instant que des pages vierges, alors pourquoi ne pas renvoyer 404 à la place. (donc ne sera pas mis en cache par Google)

De plus, pour un fichier tel que readme.html, il doit être masqué lorsqu’il divulgue votre version de wordpress, par exemple. http://ma.tt/blog/readme.html

Donc, actuellement, j'ai sélectionné plusieurs fichiers et je les bloque au niveau du serveur Web, par exemple.

wp-config.php
wp-config-sample.php
license.txt
readme.html
 ..

Mais comme il y a tellement de fichiers, en particulier dans les dossiers wp-admin et wp-include, existe-t-il un meilleur moyen de le faire pour améliorer la sécurité?

1
Yoga

Je ne voudrais pas m'embêter avec le fichier readme car il est probable qu'aucun pirate informatique ne s'ennuie à vérifier votre version WP avant d'essayer de pirater le site. Ne vous soucierez de rien dans/wp-includes et/wp-admin car je fais confiance à l'équipe principale pour sécuriser ce code dans l'installation par défaut, et ces fichiers ne contiennent aucune information spécifique à mon site.

Les fichiers à protéger sont wp-config.php, car il contient les détails d'accès à la base de données et le répertoire/wp-content, car les développeurs de thèmes et de plugins ne sont pas très bons en sécurité. pour wp-config juste refuser l'accès dans votre .htaccess

<files wp-config.php>
order allow,deny
deny from all
</files>

for/wp-content/plugins et/wp-content/theme interdisent l'accès à tout ce qui n'est pas un fichier image, js ou css en y ajoutant un .htaccess avec le contenu suivant. Si un plugin ou un thème ne fonctionne pas avec cette configuration, ils ne suivent probablement pas les instructions de codage WP et il peut être préférable de ne pas les utiliser.

<Files ^(*.jpeg|*.jpg|*.png|*.gif|*.js|*.css)>
   order deny,allow
   deny from all
</Files>

pour/wp-content/upload, vous ne pouvez pas vraiment refuser l’accès car vous ne savez pas quel type de fichiers y seront téléchargés. La meilleure chose à faire est donc de ne pas autoriser l’exécution de php, Perl, pyton. à ces répertoires et les servir en texte brut avec les règles suivantes

<FilesMatch "\.(php|pl|py|jsp|asp|htm|shtml|sh|cgi)$">
ForceType text/plain
</FilesMatch>

Une fois que vous êtes satisfait, vous devriez probablement tout combiner en un .htaccess à la racine pour de meilleures performances.

5
Mark Kaplun

Tout d’abord une correction, si vous bloquez les fichiers sous wp-admin, vous ne pourrez plus utiliser le panneau admin de wordpress. Bien que vous puissiez bloquer les fichiers du dossier "wp-admin/includes"

Maintenant la solution: -
Vous n’avez pas besoin de taper tous les noms, vous pouvez utiliser des expressions régulières pour bloquer un motif de fichiers par exemple. il est facile d'écrire une expression régulière pour bloquer tous les fichiers qui se trouvent dans le dossier wp-includes.

Si vous n'avez pas d'autres fichiers dans le même répertoire wordpress, au lieu de bloquer des fichiers spécifiques, vous pouvez passer à l'approche de la liste blanche, c'est-à-dire autoriser uniquement des fichiers spécifiques. Plus précisément, vous autoriserez uniquement les fichiers qui se trouvent dans le dossier wp-admin & wp-content et bien sûr le fichier wordpress principal (index.php).

Si vos thèmes et vos plugins n'utilisent aucun fichier généré dynamiquement, vous pouvez simplement bloquer l'accès direct à tous les fichiers php, à l'exception de ceux de wp-admin et index.php.

Quelle que soit l'approche choisie, rappelez-vous de ne bloquer que les fichiers php et rien d'autre, sinon le navigateur ne pourra pas charger tout le code CSS et le code javascript du panneau d'administration.

0
Mridul Aggarwal