10 conseils pour améliorer la sécurité des sites WordPress

Dans ce tutoriel, nous souhaitons donner quelques conseils importants et intéressants sur la manière de construire un site WordPress en toute sécurité et de mettre le plus de bâtons dans les roues des pirates potentiels. 10 conseils pour maximiser la sécurité, qui sont également appliqués sur les sites de nos clients.

1. Utiliser des mots de passe forts

Dès le début de l'installation, il est demandé d'entrer les données d'accès à la base de données. Ici aussi, il ne faut pas utiliser de mots de passe trop forts. Cela vaut d'ailleurs aussi pour tout compte d'utilisateur qui serait créé par la suite. Si l'on autorise ultérieurement un enregistrement de la part des utilisateurs, il est conseillé d'utiliser des plugins qui n'autorisent que des mots de passe forts (p. ex. DF5kysdZS66).

2. Modifier le préfixe du tableau

Dans les versions les plus récentes, WordPress permet de modifier le préfixe des tables de la base de données MySQL. Il faut en faire usage de toute urgence. Le préfixe standard "wp_" est bien sûr connu des pirates. En adaptant le préfixe, par exemple en "wp45fkze_", on rend la tâche plus difficile aux intrus potentiels. De plus, ce préfixe ne doit être indiqué qu'une seule fois. Il n'est de toute façon pas nécessaire de se souvenir du préfixe.

3. Externaliser le dossier de téléchargement

WordPress permet de délocaliser le dossier de téléchargement de la médiathèque intégrée. On peut ainsi choisir un lieu quelconque et adapter le chemin dans le backend WordPress sous "Paramètres > Médiathèque > Enregistrer les téléchargements dans le dossier suivant". Comme le dossier de téléchargement est un dossier relativement peu protégé (chmod 777 - lisible et inscriptible par tout le monde), il faut particulièrement l'envelopper dans du coton.

4. Déplacer l'instance WordPress dans un sous-dossier

Les fichiers dits "core" du système peuvent bien sûr être placés dans le dossier principal, mais là encore, on facilite grandement la tâche des attaquants potentiels en conservant la structure standard. WordPress permet d'externaliser dans un sous-dossier, par exemple "wp_cms4538". On y déplace les fichiers WordPress intégralement, mais on laisse le fichier "index.php" dans le dossier principal. Ce fichier doit être adapté en conséquence : /** Loads the WordPress Environment and Template */ require('wp_cms4538/wp-blog-header.php') ; Ne pas oublier d'adapter les chemins d'accès au site web ou au blog dans le backend de l'installation WordPress sous Paramètres > Général.

5. Ne pas utiliser un utilisateur "Admin"

Si l'on crée un premier utilisateur, il faut lui donner un nom plus cryptique que "admin" ou "administrateur". Ces désignations sont très souvent utilisées pour ce type de comptes d'utilisateur et sont donc faciles à deviner. Si l'on souhaite aller encore plus loin, il convient également d'adapter l'ID utilisateur dans la base de données, car le premier administrateur se voit attribuer "1" comme ID utilisateur, ce qui fait également le jeu d'un pirate informatique, indépendamment du choix de la désignation.

6. Ne pas créer de login client en tant qu'administrateur

S'il y a d'autres utilisateurs qui doivent être générés / créés, il ne faut attribuer le statut d'administrateur que dans des cas exceptionnels extrêmes. La règle est la suivante : trop de cuisiniers gâtent la bouillie et, pour couronner le tout, la sécurité en pâtit également. Il est plus judicieux d'attribuer aux clients le statut d'"éditeur". Les droits sont plus que suffisants pour l'utilisation quotidienne et les risques sont fortement limités. S'il est nécessaire d'affiner la gestion des droits au sein de WordPress, il est possible d'utiliser des plugins tels que "Members" pour créer des rôles personnalisés avec des droits d'utilisateur adaptés.

7. Utiliser HTACCESS pour augmenter la sécurité

Un fichier Htaccess est un instrument très puissant. Via ".htaccess", il est possible d'effectuer de nombreux réglages de sécurité qui limitent l'accès à de nombreux fichiers de configuration importants et à des domaines du backend. Nous recommandons le plugin WP HTAControl. Grâce à ce plug-in, de nombreux paramètres de sécurité peuvent être activés en quelques clics :
  • Protection du fichier "wp-config.php" contre l'accès de l'extérieur.
  • Protection du fichier "comments.php" contre l'accès de l'extérieur.
  • Limitation de la limite d'upload (par ex. à 500kb)
  • Désactivation des "Indexes" WHERE id = c'est-à-dire de l'énumération automatique du contenu d'un dossier lors d'un appel direct
  • Désactivation des signatures de serveur en cas de messages d'erreur (pour ne pas donner d'informations importantes sur le serveur aux pirates).
  • Entrées personnelles dans le fichier htaccess
  • Nombreux paramètres ayant une influence directe sur l'URL "crachée".

7. Bloquer le backend WordPress "WP-Admin" via IP

Si l'on utilise par exemple une "adresse IP fixe/fixe" au sein d'une entreprise, l'accès peut être limité à cette adresse précise. Si l'on accède au backend de WordPress en dehors de cette adresse IP, on reçoit un message d'erreur ("Forbidden"). Ainsi, la zone d'administration peut être protégée de manière extrêmement efficace, mais cela suppose que l'on accède toujours au site web via la même IP. Les fournisseurs ADSL privés (accès depuis le domicile) misent toutefois sur des "adresses IP dynamiques" qui peuvent changer rapidement. Dans ce cas, si l'on n'accorde l'accès qu'à une certaine IP, les cloisons sont fermées au plus tard après 24 heures. Cette restriction par le biais de l'adresse IP est par exemple intéressante pour les entreprises qui hébergent leur site web sur leurs propres serveurs internes et qui ne doivent donc avoir accès qu'à partir de là pour la maintenance quotidienne. Pour mettre en place ce blocage d'IP, il suffit de placer un fichier ".htaccess" dans le dossier wp-admin/ avec le contenu suivant (l'adresse IP correspondante doit bien entendu être adaptée) :
  • AuthUserFile /dev/null
  • AuthGroupFile /dev/null
  • AuthName "Contrôle d'accès administrateur WordPress".
  • AuthType Basic
  • Order deny,allow
  • Deny from all
  • # whitelist IP address
  • Allow from 89.123.57.12

8. Blocage après X échecs de connexion et suppression des messages d'erreur

En fonctionnement normal, le masque de connexion de la zone d'administration de WordPress est très généreux avec les informations qu'il crache. De plus, il est possible de faire des tentatives "infinies" pour craquer le mot de passe ou le nom d'utilisateur. Dans ce cas, on parle aussi dans le jargon d'"attaques par force brute". Dans ce cas, nous recommandons d'utiliser un plugin ("Limit Login Attempts" - blocage après un nombre donné d'échecs de connexion) ainsi qu'une adaptation dans le "functions.php" du thème utilisé. Il suffit d'insérer la ligne de code suivante dans le "functions.php" : add_filter('login_errors',create_function('$a', "return null ;")) ; Ensuite, tous les messages d'erreur sont supprimés. Sans cette instruction, WordPress révélerait immédiatement aux pirates si le nom d'utilisateur "deviné" existe réellement et si seul le mot de passe est erroné.

9. Installer le plugin WP-Security Scan by WebsiteDefender

En combinaison avec un compte gratuit chez www.websitedefender.com, le plugin "WP-Security-Scan" devient un chien de garde indispensable pour chaque site Web WordPress. L'outil ne se contente pas d'indiquer les paramètres de sécurité importants qui doivent être effectués, mais il scanne activement le système à la recherche d'intrus potentiels. À condition d'avoir créé un accès gratuit sur www.websitedefender.com et de l'avoir relié au plugin.

10. Installer les mises à jour de WordPress

WordPress est une plateforme très populaire et jouit d'une popularité croissante. Il en résulte des attaques régulières contre des failles de sécurité connues. Heureusement, la communauté autour de WordPress s'efforce de combler ces lacunes le plus rapidement possible. C'est pourquoi les mises à jour de WordPress doivent être appliquées le plus rapidement possible. À condition, premièrement, de disposer d'une sauvegarde complète et, deuxièmement, de s'assurer que tous les plugins installés fonctionnent correctement avec la nouvelle version de WordPress ou sont compatibles. Il est également recommandé de mettre en miroir l'ensemble du site WordPress. On peut ainsi installer et tester la mise à jour sans crainte et sans mettre en danger l'environnement live.

Plan du site