web-dev-qa-db-fra.com

Interdire l'accès ou supprimer automatiquement le fichier readme.html, license.txt, wp-config-sample.php

Juste une petite question qui pourrait aider un peu de sécurité. J'ai remarqué que le fichier readme.html avait le numéro de version indiqué. Il réapparaît après chaque mise à niveau, de même que le fichier licence.txt et wp-config-sample.php.

Existe-t-il un moyen simple de faire en sorte que WordPress supprime automatiquement ces fichiers après une mise à niveau?

J'empêche déjà le numéro de version de s'afficher dans les balises méta, les flux RSS, les atomes, etc.

Je sais que ce type de sécurité n’est pas vraiment que très utile, mais je pensais que c’était peut-être un tout petit début. J'ai entendu dire que les gens peuvent simplement vérifier la version de jQuery incluse dans WP-includes et faire des références croisées avec la version de WP qui l'a fournie.

13
Sahas Katta

Vous n'avez pas vraiment besoin de supprimer ces fichiers. Il est beaucoup plus facile de bloquer l'accès à ceux-ci. Si vous utilisez de jolies URL, vous avez déjà un fichier .htaccess. L'utilisation de .htaccess pour bloquer les fichiers est sécurisée et vous n'avez qu'à ajouter une directive une fois.

Le blocage de fichiers se fait en ajoutant une directive à .htaccess comme ceci:

    <files filename.file-extension>
         order allow,deny
         deny from all
    </files>

Donc, pour bloquer readme.html, procédez comme suit:

    <files readme.html>
         order allow,deny
         deny from all
    </files>

Faites de même avec le fichier de licence ou tout autre fichier auquel vous souhaitez empêcher l’accès de quiconque. Ouvrez simplement le fichier .htaccess dans le Bloc-notes ou tout autre éditeur de texte de base, ajoutez les directives et enregistrez-le en veillant à ce que l'éditeur de texte conserve le nom du fichier à la perfection, sans le suffixe .txt.

19
Elpie

Voici ma prise:

RewriteRule (?:readme|license|changelog|-config|-sample)\.(?:php|md|txt|html?) - [R=404,NC,L]
  • 404 (non existant) plutôt que 403 (interdit) pour éviter tout indice sur l'existence.
  • également dans les sous-dossiers (par exemple, les thèmes et les plugins, qui pourraient offrir des opportunités d'attaque)
  • insensible à la casse, extension-flexible, intercepte également README.html ou license.html (n'hésitez pas à ajouter des suspects typiques comme changelogs | faq | contribuer)

Personnellement, je bloquerais aussi:

RewriteRule \.(?:psd|log|cmd|exe|bat|c?sh)$ - [NC,F]

nb:

  • '?:' déclare simplement que la parenthèse ne correspond pas (aucune importance).
  • exige que RewriteEngine soit on (très probablement. il serait rare d’utiliser WordPress sans ... (des permaliens laids, etc ...)).
  • insérez before la section # BEGIN WordPress dans votre .htaccess
5
Frank Nocke
add_action('core_upgrade_preamble','my_function_to_delete_files');

Edit: vous pouvez aussi essayer ces

add_action('upgrader_pre_install','my_function_to_delete_files');
add_action('upgrader_post_install','my_function_to_delete_files');
3