30 conseils pour sécuriser WordPress
Chaque jour, des dizaines de milliers de sites, la majorité sous WordPress, sont piratés et ce chiffre est en constante augmentation.
Pour éviter les les dénis de service et les attaques de force brute, se préserver des hackers, il est indispensable de Sécuriser WordPress au mieux. vous trouverez ci-dessous différentes méthodes pour protéger un site WordPress sous apache… Cependant, nous devons vous mettre en garde sur les précautions à prendre avant toute actions :
– faire une sauvegarde de la base de données avant chaque manipulation
– Faire une copie du fichier avant de le modifier pour pouvoir revenir en arrière facilement
– noter les actions effectuées
– tester le site avant d’entreprendre de nouvelles manipulations (action après action)
Attention : Les opérations de sécurité WordPress indiquées sur cette page le sont à titre d’information, elles peuvent demander des adaptations, demandent des connaissances techniques plus ou moins avancés et peuvent varier d’un hébergeur à l’autre. Nous n’assurons en aucun cas le support.
Table des matières
- Choisir le bon thème
- Choisir les bons plugins
- Exiger une authentification forte
- Changer d’ID du compte administrateur
- Modifier la page de connexion WordPress
- Limiter les accès à l’administration du site
- Appliquer les bons droits
- Stopper l’exécution de PHP dans WP-CONTENT
- Interdire l’accès aux répertoires sensibles de WordPress
- Protéger .htaccess et wp-config.php
- Protéger le répertoire wp-admin
- Masquer le répertoire wp-includes
- Protéger le répertoire wp-content
- Ajouter une seconde authentification à l’administration du site
- Masquer la version de WordPress
- Supprimer les fichiers inutiles
- Masquer les erreurs de connexion
- Interdire l’édition des fichiers depuis l’interface d’administration
- Masquer le contenu des dossiers
- Désactivez XML-RPC
- Empêcher le hotlinking
- Protéger les plugins
- Changer les clés de sécurité de WordPress
- Se protéger des attaques XSS et des injections SQL
- Changer le préfixe de vos tables
- Bloquer les bots indésirables
- Sauvegarder régulièrement le site
- Supprimer ou renommer le compte admin
- Configurer les entêtes de sécurité http
- Tester la sécurité du site
Choisir le bon thème
Choisir un thème compatible avec les dernières versions de PHP sur un site réputé.
La structure d’un site WordPress repose sur son thème, il doit donc être à jour, bien codé et régulièrement actualisé pour se prémunir contre les vulnérabilités à exploiter des thèmes ou plugins obsolètes dont raffolent les pirates.
Vous pouvez utiliser des plugins comme « PatchStack » pour vous aider
Choisir les bons Plugins
De façon générale, plus un plugin est connu et utilisé, plus le travail fait autour de cette extension est rigoureux et maintenu. Fuyez les plugins obsolètes ou plus mis à jour et les sites qui vous proposent des plugins ‘Nulled’ et télécharger les plugins sur le site WordPress
L’absence de mises à jour de WordPress et ses plugins exposent votre site à des failles de sécurité qui peuvent servir à des hackers ou compromettre les données.
Malgré toutes les actions que vous ferez pour protéger votre site, vous verrez que de nombreuses informations sur votre site et ses plugins peuvent être facilement utilisés
Exiger une authentification forte
L’authentification d’un utilisateur est dites forte lorsqu’elle a recours à une combinaison d’au moins deux facteurs.
L’accès au site pour TOUT les utilisateurs doit se faire à minima par un mot de passe fort et peut être renforcé par différents autres moyens comme Google Authentificator qui fournit un code à six chiffres changeant toutes les 30 secondes
Les règles de Sécurité WordPress demande un minimum de complexité au niveau du mot de passe… Nous vous conseillons les suivantes:
au moins 8 caractères comportant 3 des 4 types de caractères (majuscules, minuscules, chiffres, caractères spéciaux) si l’authentification prévoit une restriction de l’accès au compte (cas le plus courant) comme :
– une temporisation d’accès au compte après plusieurs échecs ;
– un « Captcha » ;
– un verrouillage du compte après 10 échecs ;
– 12 caractères minimum et 4 types de caractères si l’authentification repose uniquement sur un mot de passe ;
– Intégrer des caractères nationaux ou européens comme €, à, ê rendra la vie moins facile aux hackers d’un autre continent
Changer l’ID du compte Administrateur du site
WordPress attribue par défaut à l’administrateur du site l’ID N° 1 lors de l’installation, il est possible de changez cette ID via phpadmin ou avec un plugin de sécurité tel Secury pro de Ithemes
Avant de modifier l’ID du compte administrateur, changer l’auteur des pages créées avec ce compte en les attribuant à un utilisateur de type « Auteur »
Une fois la sauvegarde de la base de données WordPress effectué, connectez vous à votre base de données en utilisant l’outil de ligne de commande MySQL ou phpMyAdmin puis exécutez les requêtes ci-dessous sur la base de données WordPress:
UPDATE swpd_users SET ID = 9999 WHERE ID = 1;
La requête MySQL ci-dessus va changer l’ID utilisateur de l’administrateur par défaut de 1 à 9999 dans la table « swpd_users » puis exécutez la requête suivante sur la table « swpd_usermeta » qui contient les données relatives à l’utilisateur.
UPDATE swpd_usermeta SET user_id = 9999 WHERE user_id = 1
NB : Utiliser toujours une valeur élevée pour la nouvelle ID utilisateur de l’administrateur
changer l’emplacement de la page de connexion
On peut changer l’emplacement de la page de connexion de différentes façon, nous vous recommandons cependant un plugin très léger « WPS Hide Login » qui vous permet de changer facilement et en toute sécurité l’url de la page du formulaire de connexion par celle de votre choix sans toucher aux fichiers du noyau. La désactivation de ce plugin ramène votre site exactement dans l’état où il était avant. Le choix de l’URL est modifiable dans GENERAL.
Vous pouvez aussi réduire de manière importante les tentatives d’intrusion en modifiant l’ URL par défaut de wordpress wp-admin.php aussi via le .HTACCESS. Pour cela, il vous faut ajouter cette ligne à votre fichier :
RewriteRule ^(/)?wp-administration/?$ /wp-login.php [QSA,L]
L’URL wp-admin.php deviendra dans ce cas wp-administration, Remplacez le slug « wp-administration » par celui de votre choix pour personnaliser votre URL de connexion en évitant wplogin, login, wp-login …
limiter la connexion à l’administration
Si vous avez une ip fixe, vous pouvez limiter l’accès à l’administration du site aux seules IP autorisées en plaçant dans le fichier .HTACCESS à la racine du site les lignes suivante
RewriteEngine on
RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$
RewriteCond %{REMOTE_ADDR} !^111\.111\.111\.111$
RewriteCond %{REMOTE_ADDR} !^222\.222\.222\.222$
RewriteRule ^(.*)$ – [R=403,L]
Seules les adresses IP figurant sur la liste blanche peuvent accéder à la page d’ouverture de session ( remplacer les valeurs !^111\.111\.111\.111$ et !^222\.222\.222\.222$ par les IP autorisées
Appliquer les bons droits
Appliquer les bons droits sur les fichiers et les répertoires est primordial pour sécuriser votre site Web .
- fixez les autorisations des répertoires à “755”
- Fixez les autorisations des fichiers à “644”
- Si vous fixez les autorisations de config.php et .htaccess à 444 ainsi aucune modification sur ses fichiers ne pourra être faites hors du gestionnaire de fichiers de votre hébergement
Arrêter l’exécution du PHP dans Wp-Content
Placer un fichier .htaccess dans le répertoire wp-content avec le contenu suivant :
Order deny,allow
Deny from all
Allow from all
Cela bloquera ainsi l’exécution des fichiers PHP à l’intérieur de ce répertoire.[/vc_column_text][vc_column_text el_id= »Interdire-acces-aux-repertoires-sensibles-Wordpress »]
Interdire l’accès aux répertoires sensibles de WordPress
vous devez créer un (ou ajouter au ) fichier .htaccess et le placer dans les répertoires / wp-includes / , / wp-content, / uploads / de votre site
deny from all
Ceci interdira l’exécution de fichiers PHP dans ces répertoires[/vc_column_text][vc_column_text el_id= »Proteger-htaccess-et-wp-config-php »]
Protéger .htaccess et wp-config.php
Editez dans votre fichier .htaccess et ajoutez le code suivant pour le protéger :
order allow,deny
deny from all
Ensuite pour protéger vos fichiers .htaccess :
order allow,deny
deny from all
Protéger le répertoire wp-admin
wp-admin est l’un des répertoires les plus important de votre site, vous pouvez « durcir » la sécurité de ce répertoire grâce à un fichier .HTACCESS placé dans le dossier wp-admin de votre site.
Pour Limiter l’accès à l’administration du site aux seules personnes autorisées via l‘IP de leur bureau ou domicile, entrez dans les informations suivantes
order deny,allow
deny from all
# IP de l’administrateur (au bureau)
allow from xxx.xxx.xxx.xxx
# IP de l’administrateur (au domicile)
allow from xxx.xxx.xxx.xxx #
Masquer les fichiers du répertoire wp-includes
Pour désactiver l’accès dossier Wp-includes, placer les instructions suivantes dans le fichier .HTACCESS à la racine du site :
# hide wp-includes folder and files
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ – [F,L]
RewriteRule !^wp-includes/ – [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ – [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php – [F,L]
RewriteRule ^wp-includes/theme-compat/ – [F,L]
Protéger le dossier wp-content
]Wordpress utilise 3 dossiers à savoir :
– wp-includes qui contient tous les fichiers dont WordPress a besoin pour fonctionner
– wp-admin qui contient tous les fichiers nécessaires à l’administration du site
– wp-content qui contient tous les fichiers propres à votre site WordPress
Une méthode simple pour protéger les fichiers dans wp-content et ses sous-dossiers consiste à placer dans wp-content un fichier .htaccess contenant les lignes suivantes :
Order Allow,Deny
Deny from all
Allow from all
Ajouter une seconde authentification à l’administration du site avec le fichier .htpasswd
Pour accéder à l’administration du dite, vous utilisez un identifiant et un mot de passe, éventuellement accompagné d’une double authentification mais vous pouvez ajouter un autre niveau de mot de passe grâce à un fichier .htaccess et à un fichier .htpasswd.
Le fichier .htpasswd sera dans le répertoire wp-admin et contient des identifiants et mots de passe cryptés, servez vous de ce site pour vous aider :
Entrez les identifiants et leurs mots de passe à utiliser à gauche puis cliquez sur « Générer le contenu du fichier du fichier .htpasswd »
Copiez ensuite la ou les lignes qui s’afficheront dans le fichier .htpasswd qui contiendra (dans l’exemple) les lignes :
jean:$apr1$VD00TdtQ$VNQDhh.nj1NG5FD7IjmKD1
Paul:$apr1$L4XSge8X$Cs1cfarCiSeJ8FrrxgLik0
insérez ensuite le code suivant dans le fichier .htaccess :
# Seconde authentification pour l’administration
Order allow,deny
Allow from all
Satisfy any
AuthName « Connexion à l’administration »
AuthType Basic AuthUserFile « /chemin/acces/complet/vers/fichier/.htpasswd »
Require valid-user
Attention : La protection par mot de passe de ce dossier va empêcher toutes les requêtes vers admin-ajax.php et admin-post.php et peut poser problème, malgré tout SECUPRESS propose une solution
Masquer la version de WordPress
La version de wordpress donne des indications aux hackers pour trouver d’éventuelles failles de sécurité, pour éviter cela, placer dans le fichier function.php de votre thème cette ligne :
remove_action(« swpd_head », « swpd_generator »);
Ceci dit, c’est très facile de savoir quelle CMS est utilisé et quelle est sa version
Supprimer les fichiers inutiles
Certains fichiers comme le fichier readme.html qui n’a aucune utilité, est placé à la racine du site et contient la version de WordPress
Masquer les erreurs de connexion
Pour éviter que WordPress donne des informations en cas d’erreur, ajouter cette ligne à votre fichier function.php du thème enfant
add_filter(‘login_errors’,create_function(‘$a’, « return null; »));
Empêcher l’édition des fichiers depuis le tableau de bord
Si l’édition de fichiers est activée, ce qui est fait par défaut, les administrateurs peuvent éditer directement le code des thèmes et plugins à partir du tableau de bord WordPress. Cette option présente plusieurs risques de sécurité car si un hacker parviennent à s’infiltrer dans l’administration du site, il aura accès à toutes vos données aussi il est préférable de désactiver l’édition de fichiers.
Pour cela :
– Editez le fichier WP-CONFIG.PHP
– Cherchez la ligne define(‘DISALLOW_FILE_EDIT’,/ ;
– changer pour define(‘DISALLOW_FILE_EDIT’, true);
– Sauvegarder
Masquer le contenu des dossiers WordPress
Pour masquer le contenu du site aux navigateurs, vous pouvez ajouter dans le fichier .htaccess du site les lignes suivantes :
# Alternative pour empêcher le listage des répertoires
IndexIgnore *
ou
# Désactiver l’affichage du contenu des répertoires
Options All -Indexes
Chaque fois qu’un serveur Apache renvoie des pages d’erreur, il affiche la signature du serveur Web et des informations sur le système.
Révéler la signature du serveur Web peut constituer un risque pour la sécurité, il est donc recommandé de désactiver toutes les signatures de serveur Web dans le cadre du processus de renforcement du serveur., il faut ajouter au fichier .htaccess su site les lignes :
# Masquer les informations du serveur
ServerSignature Off
Désactivez XML-RPC
L’API REST à rendu XML-RPC obsolète, ce dernier n’étant plus utilisé, ce n’est pas utile de garder XML-RPC actif sur votre site car c’est une source potentielle de vulnérabilités et d’attaque DDoS.
On peut améliorer la sécurité wordpress en le désactivant par l’ajout au fichier .htaccess du site des lignes suivantes :
# Désactiver les requêtes pour xmlrpc.php
order deny,allow
deny from all
ou dans le fichier WP-CONFIG.PHP par la ligne
add_filter(‘xmlrpc_enabled’, ‘__return_false’);
ou dans le fichier `functions.php` de votre thème:
add_action(« init », function() {
global $pagenow; // get current page
if ( !empty($pagenow) && « xmlrpc.php » === $pagenow ) {
header(« HTTP/1.1 403 Forbidden » ); // Produit une erreur 403
exit; // exit request
} return;
});
Empêcher le hotlinking
Le hotlinking, connu également sous nom de “direct linking” consiste à voler une image, une vidéo ou une tout autre ressource d’un site concurrent en créant un lien direct vers le serveur de celui-ci.
Les personnes qui utilisent cette technique l’utilisent pour économiser de la bande passante et ne pas ralentir leur serveur (au détriment du site tiers qui va consommer de la bande passante )
Certains l’utilisent aussi pour améliorer leur référencement en sabotant ceux de leurs concurrents directs.
On peut le désactiver en ajoutant au fichier .htaccess du site les lignes suivantes :
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?yourdomain.com/.*$ [NC]
RewriteRule .(gif|jpg)$ http://www.yoursite.com/hotlink.gif [R,L]
et en modifiant le nom de domaine et l’url qui est renvoyé au site responsable (image hotlink.gif dans l’exemple)
Protéger les plugins
Les plugins peuvent poser des problèmes et autoriser des accès directs aux pirates, pour s’en protéger, vous pouvez ajouter les lignes suivant au .htaccess du site
order allow,deny
allow from all
même le meilleur plugin sécurité WordPress peut avoir des failles, alors pensez à sauvegarde votre site régulièrement et à exporter les sauvegardes
Changer les clés de Sécurité WordPress du site dans fichier wp-config.php
Le fichier wp-config.php contient une série de clés d’authentification, ces clés peuvent être changés en suivant l’url https://api.wordpress.org/secret-key/1.1/salt/
Ces clés secrètes permettent de crypter les cookies utilisateur et ainsi de renforcer ainsi le niveau de sécurité de votre mot de passe.
define(‘AUTH_KEY’, ‘-Z UEhVnSH-,/p>}?j-zdO~Bw<<8Q*8?/pKO[ZTsg}U}7NB.3H+u`hc#CQ3vZ5P0’);
define(‘SECURE_AUTH_KEY’, ‘Z8acB1(~_o@Wr8OCZDu{-6)[+t@{.f7aGOEwc#1#Tw~A(^wv@KH04E04-)|pFR:4’);
define(‘LOGGED_IN_KEY’, ‘361Y.3Qnga0i)DO79vZF!T4Z BESjUU0/H{<4* ?c|eHr{+#xcZp>4w@9Cq5ftQn’);
define(‘NONCE_KEY’, ‘5)v=Gt1%]bnSaC`_B+~>d/P)|GDE0~$i]GsVktX7UmMd-r-65ka#;`2A3+vU$d{~’);
define(‘AUTH_SALT’, ‘=>,|5s|TBwuq6VB*ff_q:9zO?.qVRs7r7w`I6fDA/F;rg=4JP+N7] uuK_yfEw|p’);
define(‘SECURE_AUTH_SALT’, ‘-s-Ew}@u0t|-m5d=Ds++Q>agIS>|)2n|v0jGte+v1pM(0lSGLlEqlZWXLe^+=zok’);
define(‘LOGGED_IN_SALT’, ‘Z:$5.nK-/Ku8601kg6_}}S{u_[D$mkdtG|~%KDCE!+eLM}-$wP5b|uI+j-X#L9Qp’);
define(‘NONCE_SALT’, ‘Saifi3y+&)25-1P8+b@b1-I4p|wMFXQ- +NKT|ecV~5tlbHotr7#b2i-Y&w=fQha’);
les clés si dessus sont un exemple, générez vos propres clés avec le lien
Se protéger des attaques XSS et SQL injections
Cross-site scripting (XSS) est une faille de sécurité qui permet à un attaquant d’injecter dans un site web un code client malveillant. Ce code permet aux attaquants de contourner les contrôles d’accès et d’usurper l’identité des utilisateurs.
Pour se protéger de ses attaques, vous pouvez placer dans le fichier .htaccess du site les lignes suivantes :
# QUERY STRING EXPLOITS
RewriteCond %{QUERY_STRING} ../ [NC,OR]
RewriteCond %{QUERY_STRING} boot.ini [NC,OR]
RewriteCond %{QUERY_STRING} tag= [NC,OR]
RewriteCond %{QUERY_STRING} ftp: [NC,OR]
RewriteCond %{QUERY_STRING} http: [NC,OR]
RewriteCond %{QUERY_STRING} https: [NC,OR]
RewriteCond %{QUERY_STRING} mosConfig [NC,OR]
RewriteCond %{QUERY_STRING} ^.*([|]|(|)||’| »|;|?|*).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(%22|%27|%3C|%3E|%5C|%7B|%7C).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(%0|%A|%B|%C|%D|%E|%F|127.0).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(globals|encode|config|localhost|loopback).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(request|select|insert|union|declare|drop).* [NC]
RewriteRule ^(.*)$ – [F,L]
Attention : une ou plusieurs lignes peuvent influer sur certains plugins
Vous pouvez optez pour une version plus simple et moins contraignante en ajoutant à votre .htaccess ces lignes :
Header set X-XSS-Protection « 1; mode=block »
Pour se protéger des attaques SQL, un certain nombre de solutions existent : Vous pouvez limiter les attaques SQL en bloquant les mots-clés est utilisé par les hackers pour exécuter leurs attaques, Pour ce faire, ouvrez votre fichier .htaccess et insérez les lignes de codes ci-dessous :
Cette méthode des mots-clés renverra l’attaquant vers une erreur 404 mais noter que le serveur Apache vous affichera la même erreur chaque fois si une de vos URL contient ces mots-clés concernés.
Utilisez SSL
Un petit cadenas fermé qui rassure, c’est le signe que votre site possède un certificat SSL
Le SSL assure le cryptage des données transmises via un site Web à un serveur ou un navigateur.
Les données sensibles (mots de passe, informations bancaires, emails) sont cryptées avant d’être transmises afin qu’elles soient inutiles en cas d’interception.
La protection SSL vérifie la source et la destination des données, un site utilisant un certificat SSL à une url qui commencent obligatoirement par HTTPS, précédé d’un cadenas fermé
Internet étant un réseau ouvert, le SSL est là pour protéger les données circulant sur la toile, de plus, Google, depuis 2015 encourage activement les sites à adopter une protection SSL, et depuis 2018 indique « Site non sécurisé » sur tous les sites sans protection SSL
L’affichage ou la couleur du cadenas varieront en fonction du type de certificat SSL utilisé sur le site, mais également du navigateur web.
Les certificats SSL font plus que protéger vos données. Ils sont nécessaires pour bien se placer sur Google qui donne la priorité à ces sites plus sécurisés alors demander à votre hébergeur un certificat SSL
Paramétrez le .htaccess pour le SSL
Placez ces lignes avant # BEGIN WORDPRESS dans .htaccess
# Réécriture et redirection des URI
# Résoudre contenu mixte4 lors de la migration vers HTTPS CSP Politique de sécurité des contenus.
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
Header always set Content-Security-Policy « upgrade-insecure-requests; »
# BEGIN WordPress
Toute modification des directives situées entre ces marqueurs sera surchargée.
RewriteEngine On
RewriteRule .* – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
On utilise Ici un réécriture des adresses non SSL pour les transformer en adresses SSL
Pour résoudre le contenu mixte, les adresses non sécurisées présentes dans le code source de vos pages et les convertir en adresses sécurisées. le fichier .htaccess contiendra aussi :
Header always set Content-Security-Policy « upgrade-insecure-requests; »
et pour forcer les pages d’administration de WordPress en HTTPS, on ajoutera dans wp-config.php les lignes suivantes :
/* Forcer le SSL pour l’administration */
define(‘FORCE_SSL_ADMIN’, true) ;
Changez le préfixe de vos tables WordPress
Une des premières opérations de sécurité WordPress à effectuer en installant WordPress est de changer le prefixe des tables swpd_ par défaut par un autre préfixe impossible à deviner.
Lors de l’installation, un compte d’administration nommé « admin » est proposé, nommer le compte avec des informations neutres … Si le site est déjà installé, modifier l’ID et le nom du compte via PhpAdmin ou un plugin de sécurité
bloquer les bots indésirables
bloquer les bots indésirables avec ses entrées dans le .htaccess
# accepte seulement les bots connus
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !^.*AOL.* [NC]
RewriteCond %{HTTP_USER_AGENT} !^.*Mozilla.* [NC]
RewriteCond %{HTTP_USER_AGENT} !^.*Opera.* [NC]
RewriteCond %{HTTP_USER_AGENT} !^.*Msie.* [NC]
RewriteCond %{HTTP_USER_AGENT} !^.*Firefox.* [NC]
RewriteCond %{HTTP_USER_AGENT} !^.*Netscape.* [NC]
RewriteCond %{HTTP_USER_AGENT} !^.*Safari.* [NC]
RewriteCond %{HTTP_USER_AGENT} !^.*Google.* [NC]
RewriteCond %{HTTP_USER_AGENT} !^.*Slurp.* [NC]
RewriteCond %{HTTP_USER_AGENT} !^.*Yahoo.* [NC]
RewriteCond %{HTTP_USER_AGENT} !^.*MMCrawler.* [NC]
RewriteCond %{HTTP_USER_AGENT} !^.*msnbot.* [NC]
RewriteCond %{HTTP_USER_AGENT} !^.*SandCrawl.* [NC]
RewriteCond %{HTTP_USER_AGENT} !^.*MSRBOT.* [NC]
RewriteCond %{HTTP_USER_AGENT} !^.*Teoma.* [NC]
RewriteCond %{HTTP_USER_AGENT} !^.*Jeeves.* [NC]
RewriteCond %{HTTP_USER_AGENT} !^.*inktomi.* [NC]
RewriteCond %{HTTP_USER_AGENT} !^.*libwww.* [NC]
RewriteRule .* – [F]
Les spammeurs et les pirates utilisent des proxys pour cacher la provenance des attaques, ces lignes ajoutées dans le .htaccess permettent de bloquer la plupart d’entre eux
#Block proxies almost of all kind
RewriteEngine on
RewriteCond %{HTTP:HTTP_VIA} !^$ [OR]
RewriteCond %{HTTP:HTTP_X_FORWARDED_FOR} !^$ [OR]
RewriteCond %{HTTP:HTTP_FORWARDED_FOR} !^$ [OR]
RewriteCond %{HTTP:HTTP_X_FORWARDED} !^$ [OR]
RewriteCond %{HTTP:HTTP_FORWARDED} !^$ [OR]
RewriteCond %{HTTP:HTTP_CLIENT_IP} !^$ [OR]
RewriteCond %{HTTP:HTTP_FORWARDED_FOR_IP} !^$ [OR]
RewriteCond %{HTTP:VIA} !^$ [OR]
RewriteCond %{HTTP:X_FORWARDED_FOR} !^$ [OR]
RewriteCond %{HTTP:FORWARDED_FOR} !^$ [OR]
RewriteCond %{HTTP:X_FORWARDED} !^$ [OR]
RewriteCond %{HTTP:FORWARDED} !^$ [OR]
RewriteCond %{HTTP:CLIENT_IP} !^$ [OR]
RewriteCond %{HTTP:FORWARDED_FOR_IP} !^$ [OR]
RewriteCond %{HTTP:HTTP_PROXY_CONNECTION} !^$
RewriteRule ^(.*)$ – [F]
Vous pouvez aussi vous referez à cette page
La sécurité WordPress commence avec des sauvegardes régulières
Les sauvegardes sont quelque chose d’essentiel et les négliger est impensable, au vue aux nombres de sites piratés chaque jour, aux nombreuses sources de problèmes ( mauvaises manipulations, erreurs de l’utilisateur, fichiers supprimés ou corrompus, …)
Sauvegarder en local sur l’hébergement ne suffit pas, la sauvegarde pour prendre tout son sens doit être externalisée et doublée à minima.
Même la sécurité du site vous semble optimum, la meilleure assurance contre les problèmes reste d’avoir un système de sauvegarde fiable permettant des restaurations rapides.
Il existe une multitude de plugins de sauvegarde, Gratuits ou payants, dont on citera UpdraftPlus, Backup Buddy, Akeeba Backup, …
Tous les sites possèdent une base de données qui doit être sauvegardées régulièrement, même si votre site est ultra-sécurisé.
Idéalement, nous vous recommandons d’effectuer une sauvegarde hebdomadaire: Certains Plugins comme Backup Body permettent de faire des sauvegardes différenciées ( base de données, plugins, thèmes, fichiers, complete)
Supprimer ou renommer le compte admin
A l’installation de WordPress, le compte par défaut pour l’administration est « admin ». C’est une première faille de sécurité qui laisse aux pirates que le mot de passe à deviner, il convient de le changer à la création et pour protéger au maximum le compte administrateur, il est fortement conseiller d’écrire toutes les publications avec un profil de type éditeur.
Si le compte admin à été créé, pas de panique, voici comment faire :
– Se connecter avec « admin »
– Aller sur « Comptes »
– Créer un nouvel utilisateur (Utilisateurs > Ajouter) avec un identifiant neutre ne contenat pas d’information dans le libellé indiquant son rôle d’admin (exemple: JacquesT45)
– Donner le droit « Administrateur » à ce nouvel utilisateur
– Décocher « Envoi ce mot de passe au nouvel utilisateur par e-mail. »
– Se déconnecter de l’administration
– Se connecter avec le nouvel utilisateur (« JacquesT45 » dans l’exemple).
– Aller sur « Comptes »
– Dans « Utilisateurs », « Supprimer » dessous le compte « admin » en sélectionnant « Attribuer tous les articles et les liens au nouvel administrateur (JacquesT45)
Configurer les en-têtes de sécurité HTTP
Rendez la connexion https plus sûre grâce aux en-têtes de sécurité HTTP : HTTP Strict Transport Security est un en-tête qui configure le navigateur Web pour qu’il utilise toujours une connexion sécurisée valide avec l’application Web, son implémentation est nécessaire pour améliorer la sécurité du site.
Si un utilisateur tente d’accéder à votre site en HTTP, il sera automatiquement redirigé en HTTPS… Vous pouvez tester les security header et l’implémenter dans le .htaccess du site par ses lignes :
# entete securite
Header set Strict-Transport-Security « max-age=31536000 » env=HTTPS
Header set X-XSS-Protection « 1; mode=block »
Header set X-Content-Type-Options nosniff
Header set X-Frame-Options DENY
Header set Referrer-Policy: no-referrer-when-downgrade
# fin entete securite
Tester la sécurité de votre site WordPress
Il existe de nombreux sites et plugins pour tester la sécurité d’un site, en voilà une petite sélection :
tester en ligne un site Internet :
Sucuri SiteCheck vérifiera le site Web pour détecter les logiciels malveillants connus, les virus, l’état de la liste noire, les erreurs de site Web, les logiciels obsolètes et les codes malveillants.
le scanner de wpneuron.com analysera votre site à la recherche de problèmes de sécurité tels que les problèmes de base, les plugins vulnérables et d’autres scripts non sécurisés connus. Veuillez utiliser cet outil pour améliorer la sécurité de votre site et ne pas analyser d’autres sites Web avec des arrière-pensées
Le scanner de Pentest-tools recherche des vulnérabilités et cherche les Injection SQL et XSS ainsi que les problèmes de configuration de serveur Web.
Conclusion
Sécuriser un site WordPress demande de mettre en œuvre tout un ensemble de principes telles que la gestion des droits. Les modifications peuvent être faites par un ou plusieurs plugins de sécurité ou manuellement.
Ces restrictions, dans le contexte actuel, ou les attaques des sites WordPress se multiplient sont nécessaires pour dormir sur ses deux oreilles. Toutes les modifications apportées peuvent impacter la vitesse d’un site,
Il n’est pas forcement nécessaire de les appliquer toutes mais plus la sécurité du site est évoluée, plus vous diminuez le risque de voir le site endommagé par une attaque malveillante.
Nous vous conseillons pour conclure de :
– Enregistrer régulièrement la base de données du site.
– Faire des mises à jour plus souvent.
– Installer un plugin de sécurité depuis une source fiable si la manipulation des fichiers système vous fait peur
– Utiliser des mots de passe complexes.
– Mettez un Captcha pour protéger les formulaires
– Activez le HTTPS avec un certificat SSL sur votre site
– Enlevez les thèmes et plugins inutiles.
– Choisir un bon hébergeur avec un support de qualité
– Aller vers PHP8 qui rend la plupart des malwares anciens obsolètes et à minima php 7.4
N’hésitez pas à nous faire part de vos questions dans les commentaires et à consulter les sites en liens pour en savoir plus .