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

12

Juste une petite question qui pourrait vous aider un peu avec la 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?

Je bloque déjà l'affichage du numéro de version dans les balises META, les flux RSS, les atomes, etc.

Je sais que ce type de sécurité n'est pas vraiment utile , mais je pensais simplement que ce pourrait être un tout petit début. J'ai entendu dire que les utilisateurs pouvaient simplement vérifier la version de jQuery incluse dans WP-includes et faire des références croisées avec la version de WP fournie.

    
posée Sahas Katta 15.12.2010 - 10:53

3 réponses

19

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 il vous suffit d'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 .txt à la fin.

    
réponse donnée Elpie 15.05.2011 - 14:22
5

Voici ma prise de vue:

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 (c'est-à-dire des thèmes et des plugins pouvant offrir des possibilité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 (ce qui est probablement le cas. il serait rare d’utiliser Wordpress sans ... (moche permaliens, etc ...)).
  • insérez avant la section # BEGIN WordPress dans votre .htaccess
réponse donnée Frank Nocke 06.09.2015 - 08:44
3
add_action('core_upgrade_preamble','my_function_to_delete_files');

Modifier: vous pouvez également essayer ces

add_action('upgrader_pre_install','my_function_to_delete_files');
add_action('upgrader_post_install','my_function_to_delete_files');
    
réponse donnée Atif Mohammed Ameenuddin 15.12.2010 - 11:37

Lire d'autres questions sur les étiquettes