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

  1. Choisir le bon thème
  2. Choisir les bons plugins
  3. Exiger une authentification forte
  4. Changer d’ID du compte administrateur
  5. Modifier la page de connexion WordPress
  6. Limiter les accès à l’administration du site
  7. Appliquer les bons droits
  8. Stopper l’exécution de PHP dans WP-CONTENT
  9. Interdire l’accès aux répertoires sensibles de WordPress
  10. Protéger .htaccess et wp-config.php
  11. Protéger le répertoire wp-admin
  12. Masquer le répertoire wp-includes
  13. Protéger le répertoire wp-content
  14. Ajouter une seconde authentification à l’administration du site
  15. Masquer la version de WordPress
  16. Supprimer les fichiers inutiles
  17. Masquer les erreurs de connexion
  18. Interdire l’édition des fichiers depuis l’interface d’administration
  19. Masquer le contenu des dossiers
  20. Désactivez XML-RPC
  21. Empêcher le hotlinking
  22. Protéger les plugins
  23. Changer les clés de sécurité de WordPress
  24. Se protéger des attaques XSS et des injections SQL
  25. Changer le préfixe de vos tables
  26. Bloquer les bots indésirables
  27. Sauvegarder régulièrement le site
  28. Supprimer ou renommer le compte admin
  29. Configurer les entêtes de sécurité http
  30. 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 »

generation de mots de passe cryptés

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 :

#Limit sql orders
RewriteCond %{QUERY_STRING} [^a-z](declare¦char¦set¦cast¦convert¦delete¦drop¦exec¦insert¦meta¦script¦select¦truncate¦update)[^a-z] [NC]
RewriteRule (.*)[F]

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

site 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

test-ssl-avec-ssllabs-com

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

sécuriser votre site internet

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 .

Services de création de site Internet disponible à Orléans !

et sur toute la France en télétravail

Discutons de votre projet !

Devis Gratuit – 30 minutes pour parler de votre projet

Envoyez-nous un mail

7 + 0 = ?