WP Umbrella Logo

Comment renforcer la sécurité de WordPress sans plugin

Medha Bhatt
-

Les vulnérabilités et les failles de sécurité sont presque toujours liées à des erreurs humaines. La meilleure façon d'améliorer la sécurité de votre site web est donc d'être vigilant sur certains points ! Voici comment renforcer la sécurité de WordPress sans utiliser de plugin.

TL;DR

Renforcer la sécurité de WordPress sans plugins consiste principalement à prévenir les erreurs humaines et à réduire votre surface d'attaque. Maintenez votre site à jour, supprimez ce que vous n'utilisez pas, surveillez les erreurs PHP, choisissez un hébergement sécurisé, appliquez des mots de passe forts, installez SSL, limitez les tentatives de connexion, bloquez l'exécution de PHP dans les dossiers non fiables, désactivez l'édition de fichiers à partir du tableau de bord, mettez à jour les sels, et protégez wp-config.php.

10 étapes pour renforcer la sécurité de WordPress sans plugins

Étape 1 : Maintenez votre site web à jour et supprimez les plugins et thèmes inutiles

Renforcer la sécurité de WordPress sans plugin


Selon la base de données WPScan, 95% des vulnérabilités de WordPress proviennent en fait des thèmes et des plugins

WPScan Database- Renforcer la sécurité de WordPress sans plugin

Et 95 % de ces 95 % proviennent en fait de thèmes et de plugins gratuits. 

La meilleure façon de protéger votre site web contre les pirates informatiques est de maintenir vos plugins et votre thème à jour. Vous devez également supprimer tous les plugins inutiles installés sur votre site web.

Étape 2 : Contrôler et corriger les erreurs PHP

Cette astuce peut être plus délicate à mettre en œuvre si vous n'êtes pas à l'aise avec le langage PHP.

Les plugins et les thèmes peuvent générer un grand nombre d'erreurs PHP.

La plupart d'entre eux sont inoffensifs, mais certains peuvent mettre en péril votre site web et entraîner des temps d'arrêt.

Pour savoir quels plugins génèrent des erreurs PHP, vous devez accéder au journal des erreurs de WordPress.

La manière la plus simple d'y parvenir est d'installer WP Umbrella.

Allez dans l'onglet Suivi PHP et activez la vue avancée.

De là, vous pouvez accéder à toutes les erreurs et aux informations connexes nécessaires pour les résoudre et rendre votre site Web WordPress plus sûr.

Julio Potier

Certaines personnes pensent qu'un plugin non mis à jour générera des failles de sécurité comme s'il était en croissance. Bien sûr, ce n'est pas comme ça que ça fonctionne. Chaque plugin, thème, ou même le noyau de WordPress lui-même a une sorte de faille de sécurité, mais jusqu'à ce qu'elle soit découverte, ce n'est pas un problème. Le problème existe lorsqu'elles sont découvertes et non corrigées. Heureusement, la communauté WordPress est pleine de hackers "white hat" qui divulguent les problèmes. La plupart du temps, lorsque vous voyez qu'un défaut de plugin/thème a été découvert, il a déjà été corrigé.

Julio Pottier @ PDG de SecuPress

Étape 3 : Sélectionnez soigneusement votre fournisseur d'hébergement

Il va sans dire que le choix d'un hébergement sécurisé devrait également être l'une de vos principales priorités.

Avant de vous pencher sur les plugins de sécurité, vous devez vous assurer que votre hébergement WordPress dispose de mesures de sécurité significatives.

Voici quelques-unes des mesures de sécurité qu'un bon hébergeur WordPress doit vous fournir :

  • Authentification à deux facteurs ;
  • Blocage du GeoIP ;
  • Pare-feu matériel ;
  • Connexions SFTP et SSH cryptées ;
  • Sauvegardes automatiques ;

Kinsta, notre fournisseur d'hébergement, offre tous ces services.

Étape 4 : Définir un mot de passe fort et unique pour chaque site web et service

Utiliser le même mot de passe pour tous les sites web est le meilleur moyen de se faire pirater.

Tous les sites ne sont pas sécurisés. Si vous utilisez le même mot de passe partout et qu'un pirate informatique parvient à l'obtenir, il aura accès à tous vos comptes.

Vous devez choisir un mot de passe différent pour chaque site que vous utilisez. Le plus simple est d'utiliser un générateur de mot de passe sécurisé comme le générateur de mot de passe Norton.

Étape 5 : Utiliser des mots de passe forts

Si votre site web a plusieurs utilisateurs, chacun d'entre eux doit avoir un mot de passe fort et le changer régulièrement. Vous devez obliger votre équipe à réinitialiser les mots de passe de temps en temps. C'est d'une importance capitale pour la sécurité de WordPress.

Étape 6 : Installer le certificat SSL

La couche de socket sécurisée (SSL) fournit une connexion cryptée entre un serveur et un utilisateur, de sorte que les données peuvent être envoyées en toute sécurité entre eux. 

En plus d'être une sage pratique de sécurité, Google exige que les sites Web utilisent le protocole SSL. Un site Web fonctionnant en HTTP au lieu de HTTPS est généralement pénalisé par le navigateur qui affiche "Non sécurisé" au lieu de l'agréable cadenas vert. Cela détruit la confiance de vos visiteurs et de votre marque. 

Auparavant, l'installation d'un certificat SSL était assez difficile. Grâce à Really Simple SSL, vous pouvez désormais ajouter le SSL à WordPress en moins de 5 minutes. 

Étape 7 : Limiter les tentatives de connexion à l'administration WP

Ce n'est pas un hasard si les sites web des banques ne donnent aux utilisateurs que trois tentatives pour saisir correctement leur nom d'utilisateur et leur mot de passe. Une fois que c'est fait, vos comptes sont verrouillés pour une courte période de temps. 

En procédant ainsi, les attaques par force brute peuvent être réduites et les pirates peuvent être plus efficacement entravés.

Les tentatives de connexion sont illimitées par défaut dans WordPress. Vous pouvez renforcer la sécurité de votre site Web en limitant les tentatives de connexion afin que les pirates ne puissent pas essayer des milliers de combinaisons pour obtenir un accès.

Ce petit bout de code peut être inséré manuellement dans le fichier wp-content > Themes > functions.php pour assurer une protection limitée de la connexion.

function check_attempted_login( $user, $username, $password ) {

    if ( get_transient( ‘attempted_login’ ) ) {

        $datas = get_transient( ‘attempted_login’ );

        if ( $datas[‘tried’] >= 3 ) {

            $until = get_option( ‘_transient_timeout_’ . ‘attempted_login’ );

            $time = time_to_go( $until );

            return new WP_Error( ‘too_many_tried’,  sprintf( __( ‘ERROR: You have reached authentication limit, you will be able to try again in %1$s.’ ) , $time ) );

        }

    }

    return $user;

}

add_filter( ‘authenticate’, ‘check_attempted_login’, 30, 3 ); 

function login_failed( $username ) {

    if ( get_transient( ‘attempted_login’ ) ) {

        $datas = get_transient( ‘attempted_login’ );

        $datas[‘tried’]++;

        if ( $datas[‘tried’] <= 3 )

            set_transient( ‘attempted_login’, $datas , 300 );

    } else {

        $datas = array(

            ‘tried’     => 1

        );

        set_transient( ‘attempted_login’, $datas , 300 );

    }

}

add_action( ‘wp_login_failed’, ‘login_failed’, 10, 1 ); 

function time_to_go($timestamp)

{

    // converting the mysql timestamp to php time

    $periods = array(

        “second”,

        “minute”,

        “hour”,

        “day”,

        “week”,

        “month”,

        “year”

    );

    $lengths = array(

        “60”,

        “60”,

        “24”,

        “7”,

        “4.35”,

        “12”

    );

    $current_timestamp = time();

    $difference = abs($current_timestamp – $timestamp);

    for ($i = 0; $difference >= $lengths[$i] && $i < count($lengths) – 1; $i ++) {

        $difference /= $lengths[$i];

    }

    $difference = round($difference);

    if (isset($difference)) {

        if ($difference != 1)

            $periods[$i] .= “s”;

            $output = “$difference $periods[$i]”;

Avertissement

Assurez-vous de disposer d'une sauvegarde complète de votre site web avant de procéder à cette opération. En cas de problème, vous pourrez rapidement restaurer votre site. Votre site web WordPress peut être sauvegardé facilement grâce à WP Umbrella!

Étape 8 : Bloquer l'exécution PHP dans les dossiers non fiables

Il s'agit d'un cas difficile, je vais donc essayer de faire aussi simple que possible.

Vous devez d'abord comprendre que PHP est un langage de script utilisé pour le développement Web. Les fonctions en PHP sont des blocs de code qui peuvent être exécutés dans un programme pour réaliser une certaine fonction. 

La deuxième chose que vous devez comprendre est qu'un site Web WordPress est composé de fichiers et de dossiers. Il est important de noter, cependant, que seuls certains fichiers et dossiers utilisent des fonctions PHP. Il est possible pour les pirates de créer de nouveaux dossiers sur votre site Web, ou de copier et coller leurs fonctions PHP dans les dossiers existants. Cela serait préjudiciable à votre site Web. Sans l'outil approprié, vous pourriez passer des semaines sans vous rendre compte que votre site Web est corrompu.

Vous pouvez empêcher un tel piratage en bloquant les fonctions PHP provenant de dossiers inconnus, ou simplement en désactivant les exécutions PHP là où elles ne sont pas censées se produire.

Pour ce faire, recherchez le fichier .htaccess sur votre FTP et ouvrez-le. S'il n'existe pas, vous pouvez le créer avec votre éditeur HTML. N'oubliez pas de l'enregistrer sous le nom de .htaccess.

Ajoutez ces lignes de code au fichier :

<Files *.php>
deny from all
</Files>

Étape 9 : Désactiver l'éditeur de fichiers WordPress

Vous pouvez modifier les fichiers des thèmes et des plugins WordPress directement depuis la zone d'administration grâce à l'éditeur de code intégré de WordPress.

L'éditeur de thème se trouve sous Apparence " Éditeur de thème. Une liste des fichiers liés à votre thème actif actuel y sera affichée.

De la même manière, l'éditeur de plugins se trouve à l'adresse Plugins " Plugin Editor. Il vous montrera automatiquement le premier plugin installé sur votre site par ordre alphabétique.

Si un pirate accède à votre zone d'administration WordPress, il peut accéder à toutes vos données en utilisant l'éditeur intégré.

En outre, les pirates peuvent utiliser votre site WordPress pour diffuser des logiciels malveillants ou lancer des attaques par déni de service.

Il est recommandé de supprimer complètement les éditeurs de fichiers intégrés à WordPress pour améliorer sa sécurité.

Pour supprimer l'éditeur de thème de WordPress, vous devez modifier le fichier wp-config.php.

Ajoutez cette ligne de code :

define( ‘DISALLOW_FILE_EDIT’, true );

Juste au-dessus de la ligne disant /* C'est tout, arrêtez d'éditer ! Bonne publication. */

Veillez à enregistrer vos modifications avant de fermer l'éditeur.

Étape 10 : Modifier les clés de sécurité et les sels

Pour chiffrer les noms d'utilisateur et les mots de passe, WordPress utilise des sels ou des clés de sécurité. Ces chaînes sont utilisées pour hacher vos identifiants de connexion. Par conséquent, vos informations d'identification ne peuvent pas être volées ou utilisées pour se connecter à votre site Web, car elles ne peuvent pas être distinguées de caractères aléatoires. 

Les termes "sels WordPress" et "clés de sécurité WordPress" font tous deux référence aux mêmes 8 chaînes de caractères. Un sel correspond à chacune des 4 clés de sécurité. Les 4 clés de sécurité de WordPress sont : 

  • AUTH_KEY
  • CLÉ_AUTH_SÉCURISÉE
  • CLÉ D'ACCÈS (LOGGED_IN_KEY)
  • NONCE_KEY

Dans le système de sécurité de WordPress, les clés et les sels sont des chaînes aléatoires, ce qui les rend à la fois solides et uniques. Néanmoins, il peut s'avérer nécessaire de les modifier à l'occasion.

Par exemple, lorsque vous supprimez un logiciel malveillant, vous devez ensuite modifier les clés salines.

Il est également judicieux de mettre à jour les clés salines de WordPress de temps en temps, tout comme vous le feriez pour vos mots de passe. Les pirates ont plus de mal à percer la sécurité de votre site web lorsque les informations d'identification sont modifiées régulièrement. 

Conseils

Faites toujours une sauvegarde de votre site web avant de modifier les clés et les sels de sécurité.

Le changement des clés de sécurité et des sels est un processus facile :

  1. Utilisez le générateur de clés secrètes de WordPress pour générer de nouvelles clés et sels.
  2. Remplacez les anciennes clés et sels d'authentification dans le fichier wp-config.php par les nouveaux.

Étape 11 : Sécurisez le fichier wp-config.php

Le fichier wp-config.php est le plus précieux pour les pirates. Il contient toutes vos informations d'identification. C'est le cœur de votre site web, et c'est pourquoi vous devez renforcer sa sécurité.

La meilleure façon de sécuriser le fichier wp-config.php est d'en interdire l'accès.

Pour ce faire, ajoutez le code suivant en haut de votre fichier .htaccess : 

<files wp-config.php>
order allow,deny
deny from all
</files>

En rapport: Liste de plus de 30 bonnes pratiques de sécurité WordPress pour assurer la sécurité de votre site web.

Conclusion

Aucune des étapes mentionnées ci-dessus n'est complexe en soi, mais elles fonctionnent ensemble pour réduire la surface d'attaque de votre site et rendre votre environnement prévisible et beaucoup plus difficile à compromettre. Que vous gériez un seul site ou un portefeuille, c'est la base d'une installation sécurisée de WordPress. Et si vous souhaitez avoir une visibilité sur les erreurs, les mises à jour, le temps de fonctionnement ou les sauvegardes, des outils comme WP Umbrella vous aident à repérer les problèmes avant qu'ils ne s'aggravent, sans pour autant remplacer les bases que vous avez mises en place ici.

A suivre, le meilleur plugin de sécurité pour WordPress.

FAQ sur le renforcement de la sécurité de WordPress sans plugin

1. Quelle est la meilleure façon de renforcer la sécurité de WordPress sans plugins ?

La méthode la plus efficace consiste à mettre à jour WordPress, les thèmes et les plugins, à supprimer tout ce qui n'est pas utilisé, à utiliser des mots de passe forts, à sécuriser l'hébergement, à installer le protocole SSL, à limiter les tentatives de connexion, à bloquer l'exécution de PHP dans les dossiers non fiables, à désactiver l'éditeur de fichiers et à verrouiller le fichier wp-config.php. Ces mesures permettent d'éviter la plupart des violations de WordPress dans le monde réel.

2. Les vulnérabilités de WordPress sont-elles principalement dues à des plugins ?

Oui. Selon Patchstack, plus de 90 % des vulnérabilités connues de WordPress proviennent de thèmes ou de plugins, en particulier ceux qui sont gratuits ou obsolètes. La vulnérabilité ne devient un risque qu'une fois qu'elle est découverte et non corrigée, d'où l'importance des mises à jour en temps utile.

3. Comment sécuriser wp-config.php ?

Ajoutez cette règle au début de votre .htaccess fichier :
<files wp-config.php>
ordre autoriser, refuser
refuser à tous
</files>
Il bloque l'accès direct à votre fichier de configuration, qui contient les informations d'identification et les sels de votre base de données.

4. Puis-je sécuriser WordPress sans modifier le code ?

En grande partie oui. Les seuls changements au niveau du code concernent la limitation des tentatives de connexion, la désactivation de l'éditeur de fichiers et le blocage de l'exécution de PHP. Tout le reste, y compris les mises à jour, les mots de passe, l'hébergement, le SSL, peut être fait sans codage.

5. La mise à jour de WordPress suffit-elle à assurer la sécurité ?

La mise à jour ferme les vulnérabilités divulguées, ce qui empêche la majorité des attaques automatisées. Ce n'est pas suffisant en soi, mais cela élimine la plus grande source d'exploits connus. Pour une meilleure protection, associez les mises à jour à des mots de passe forts, à un hébergement sécurisé et à une limitation de l'exécution de PHP.