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