25 Sep. 18 Cybersécurité
Comment sécuriser son site en wordpress en 16 points
WordPress est un outil de gestion de contenu (en Php/Mysql). Les fonctionnalités de WordPress permettent de publier simplement un site web ou un blog. En 2018, WordPress représente 30% de sites web publiés. La sécurisation de ce type de site est donc primordiale.
Cette article présente des méthodes pour sécuriser votre site WordPress et ainsi garantir un bon niveau de sécurité pour votre système d’information.
Comment sécuriser mon site ? Comment sécuriser WordPress en 16 Etapes ? Comment conserver un bon niveau de sécurité dans le temps pour mon site vitrine ? créer un site internet sécurisé.
Voici nos conseils pour sécuriser votre site et éviter la compromission.
La Sécurisation du système
1. Désactivation du listage des répertoires
Description :
Pour limiter la fuite d’information il est important de désactiver le listage des répertoires au niveau du site.
Méthode :
Modification du fichier .htaccess et ajout de la ligne :
options –Indexes
2. Activation de SSL
Description :
Il est important de chiffrer les échanges entre votre site et vos clients.
Méthode :
Fichier wp-config.php
define(‘FORCE_SSL_ADMIN’, true);
Fichier .htaccess
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
3. Positionner les Bonnes Permissions sur les Fichiers
Description :
Il est important de positionner les bonnes permissions au
niveau de l’arborescence WordPress pour limiter une
compromission inter-sites WordPress.
Méthode :
• Permissions UNIX sur les répertoires 755
• Permission sur les fichiers 655
4. Désactiver PHP dans le Répertoire uploads
Description :
Le répertoire /uploads est sensible car de nombreuses
fonctions permettent de déposer des documents. Il est
important de filtrer les extensions PHP au niveau de ce
répertoire.
Méthode :
Création d’un fichier .htaccess dans /wp-contents/
uploads/
php_flag engine off
<Files ~ « \.ph(?:p[345]?|t|tml)$ »>
deny from all
</Files>
5. Sauvegarder
Description :
Mise en œuvre d’une solution de sauvegarde du site doit être déployée.
Méthode :
Sauvegarde du site et de la base MySQL
Solution :
• Mise en œuvre d’un agent
• Mise en œuvre d’un plugin
6. Changer de Préfixe Base de Données
Description :
Le nom des tables WordPress commence généralement par wp_, il est préconisé de modifier ce paramètre à l’installation.
Méthode :
Remplacer le préfixe proposé par WordPress à l’installation par un préfixe aléatoire.
La Sécurisation des Plugins
7. Nettoyer Plugins et Thèmes
Description :
De nombreuses vulnérabilités sont présentes dans les thèmes et plugins.
La bonne pratique est donc de limiter la présence de ces
plugins ou thèmes.
Méthode :
Supprimez les thèmes et le plugins non utilisés.
8. Gérer la Mise à Jour
Description :
il est important de faire une mise à jour automatique des différents composants.
Méthode :
Vérification des lignes dans votre fichier wp-config.php
Pour le core :
define( ‘WP_AUTO_UPDATE_CORE’, true );
Pour les plugins :
add_filter( ‘auto_update_plugin’, ‘__return_true’ );
Pour les thèmes :
add_filter( ‘auto_update_theme’, ‘__return_true’ );
9. Désactiver l’édition de fichiers dans WordPress
Description :
L’édition en ligne de fichiers dans l’interface de WordPress expose fortement votre installation. La préconisation est donc de désactiver cela.
Méthode :
Edition du fichier wp-config.php
define(‘DISALLOW_FILE_EDIT’, true);
10. Filtrer ou Nettoyer les Fichiers inutiles
Description :
Supprimer les fichiers non utilisés ou interdire l’accès (readme/changelog/backup).
Méthode :
• Connexion à votre wordpress et recherche de ces fichiers orphelins
• Ajout du code suivant dans votre fichier htaccess :
<FilesMatch « .
(bak|config|sql|fla|psd|ini|log|sh|inc|~|swp)$ »> Order
allow,deny Deny from all Satisfy All </FilesMatch>
11. Sécuriser la Connexion à votre serveur
Description :
Il est important de chiffrer les échanges entre votre poste et le serveur.
Méthode :
Pour vos connexions, privilégiez :
• SSH à Telnet
• SFTP ou FTPS à FTP
• HTTPS à HTTP
La Protection de vos Comptes
12. Forcer la complexité de mots de passe
Description :
Exiger un mot de passe fort pour vos utilisateurs.
Méthode :
Utilisation de plugins :
• force-strong-passwords
13. Mécanisme de Verrouillage de Comptes
Description :
Protégez vos comptes contre le brute force en instaurant une limitation sur les échecs d’authentification.
Méthode :
Utilisation de plugins :
• Login Lockdown
• Limit Login Atempts
• Jetpack Protect
14. Changer le Compte Admin
Description :
Le compte admin de WordPress est souvent ADMIN.
Il est préconisé de renommer le compte pour éviter des tentatives de compromissions de comptes.
Méthode :
Plusieurs solutions :
• création d’un nouveau compte et suppression du compte admin
• utilisation du plugin username-changer
• changer le login admin directement en base
15. Filtrer l’Énumération des Utilisateurs
Description :
Une astuce permet d’énumérer les utilisateurs d’un WordPress.
Il est donc préconisé de limiter cette exposition pour éviter un brute force sur vos comptes WordPress.
Méthode :
Modification du fichier .htaccess :
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/wp-admin [NC]
RewriteCond %{QUERY_STRING} author=\d
RewriteRule (.*) $1? [L,R=301]
16. Gérer les Permissions WordPress
Description :
Octroyer les bonnes permissions pour vos utilisateurs pour limiter la surface d’attaque.
Méthode :
• Admin : accède à toutes les fonctionnalités
• Éditeur : publie et gère les pages de tous les utilisateurs
• Auteur : publie et gère ses propres pages uniquement
• Contributeur : écrit et gère ses propres articles sans pouvoir les publier
• Abonné : possède simplement un profil qu’il peut modifier