Warning: Undefined array key "size" in /home/clients/da935d49e3e876a469bc7c8f42c3695b/web/FabriceCourt/wp-content/themes/enfold/includes/loop-portfolio-single.php on line 35
Protéger et sécuriser son site wordpress

Sécuriser efficacement son site WordPress

Sécuriser votre site WordPress n’est pas une affaire de spécialiste !
En menant des recherches à propos de cet article, j’ai été surpris de constater combien un site lambda pouvait être attaqué – certains à raison de plusieurs centaines de fois par heure.

J’ai même été confronté très récemment au cas d’une cliente qui a vu son site piraté et fermé temporairement à la navigation par Google. La sécurité de votre site vous concerne donc aujourd’hui ! Même si votre site n’a pas énormément d’influence et de trafic, il est important que vous le sécurisiez sans tarder. Je ne suis vraiment pas là pour vous affoler…Juste pour vous donner quelques clefs pour améliorer la protection de votre plate-forme Web.

Archivez votre site WordPress

Archivez, Archivez, Archivez (niv. facile)

C’est indéniablement le premier principe à appliquer (vous pouvez d’ailleurs vous familiariser avec cette démarche en suivant les tutoriels sur l’archivage de site et celui de l’archivage de la base de données). Ces tutos sont mis à jour au fil du temps et des solutions technologiques…Ne manquez pas de les consulter.
Sachez que les deux derniers sites que j’ai sauvé de la noyade, l’ont été car j’avais à ma disposition une archive fraîche et qu’il m’a été facile de revenir en arrière grâce à cette base stable.

Je vous conseille de mener des archives incrémentales. Pour cela créer des dossiers avec le nom de l’archive et le jour, par ex :

  • Archive-01032013
  • Archive-15032013
    …etc.

Prenez alors soin de garder au moins 3 versions antérieures de votre site ; de la sorte, vous aurez une possibilité de remonter dans le temps si nécessaire.


Prenez soin de votre Site WordPress (niv. facile)

Voici une liste de conseils de bon sens qui vous aideront à optimiser la santé de votre site. Les suivre est un premier pas dans la sécurisation de vos données :

Mise à jour extensions et version WordPress

1Bien des mises à jour sont là pour améliorer la sécurité de votre plate-forme. Je connais malheureusement plusieurs exemples de grands sites qui ont été hacké par des blogs oubliés, inactifs qui ont joué le rôle de porte arrière (back-door) sur le site principal.
Comme vous savez tenir à jour votre architecture WordPress et vos extensions, tenez vous également au courant des mises à jour de votre thème…Et appliquez les.
N’installez pas non plus n’importe quoi sur votre site : préférez les extensions proposées par le site officiel de WordPress et informez-vous sur les rapports de bug et failles de sécurité desdits plugins. Supprimez également les plugins inactif.

Sachez convenablement organiser votre thème

2Vos fichiers médias, vos dossiers .zip client, les jpeg de votre site n’ont rien à faire à la base de votre site. Garder un ordre nécessaire et vital à la racine et dans l’ensemble de vos dossiers. Classez, organisez, votre site sera plus facile à administrer (ou à récupérer) s’il est organisé de façon appropriée. Pour protéger le contenu de vos dossier, WordPress ajoute un fichier avec un petit bout de code. Une protection optimale de tous vos répertoires peut également être obtenue par l’ajout du code suivant dans le .htaccess de votre site :

Options All -Indexes

Cela aura pour effet d’interdire la navigation intérieure de votre dossier à partir d’un navigateur

Les permissions des fichiers wordpress

Sécurisez votre installation en quelques clics (niv. intermédiaire)

Prendre toutes les précautions nécessaire à la protection de votre site, c’est bien. Mais ne pas exposer vos données sensibles aux grand soleil, c’est encore mieux. Voici en quelques clics quelques précautions à appliquer rapidement :

Supprimer le fichier readme.html

1Placé à la racine de votre site, ce fichier contient la version WordPress de votre site (testez avec www.votresite.com/readme.html). Si vous n’avez pas su tenir à jour votre site, une version antérieure présentera des failles connues, et donc des moyens faciles de cracker votre accès.

Protéger en écriture wp-config.php et .htaccess

2Par ce moyen, vous permettez la lecture de ces fichiers, mais restreignez d’éventuelles modifications au seul propriétaire. Pour cela, allez dans Filezilla (ou tout autre navigateur ftp) et cliquez droit sur le fichier et sélectionnez « Droit d’accès au fichier » ; indiquez alors 644 dans le champ à compléter, puis validez. On peut également mener cette opération grâce à WP Security Scan qui identifie et permet de corriger les droits d’accès en une seule passe.

Pendant que nous sommes sur l’étude de ces fichiers, rajoutez également ces bouts de codes qui vous aideront à protéger l’accès extérieur de ces fichiers sensibles. Utilisez Notepad++ (si vous ne disposez pas de ce programme gratuit, sûr et puissant, courrez l’obtenir), puis appliquez les modifications suivantes

→ Protégez votre fichier wp-config.php grâce à ce code ajouté en bas de votre fichier .htaccess (note, si ce fichier n’existe pas encore dans votre configuration, vous pouvez l’ajouter à la main en le nommant ‘.htaccess’ (sans les apostrophes) .

order allow,deny
# Protéger le fichier wp-config.php
<files wp-config.php>
order allow,deny
deny from all
</files>

→ Protégez votre propre fichier .htaccess grâce à ce code ajouté en bas de ce même fichier

# Protéger les fichiers .htaccess et .htpasswds
<Files ~ "^.*\.([Hh][Tt][AaPp])">
order allow,deny
deny from all
satisfy all
</Files>

Masquez votre version

3Il convient également de masquer le numéro de version offert tout cru dans « meta name ». Utiliser pour cela le fichier function.php (présent dans /wp-content/themes/Votre-Theme-enfant) et ajouter ce bout de code idoine…

remove_action("wp_head", "wp_generator");

On peut également empêcher le flux RSS d’afficher la version WordPress avec la fonction suivante

function wpt_remove_version() {
return ''; }
add_filter('the_generator', 'wpt_remove_version');

Quelques précautions supplémentaires

4 Ne laissez enfin aucune donnée sensible comme l’archive de base de données que certains plugins comme WP-backup stockent dans wp-content. Agir ainsi est laisser une réelle porte ouverte au piratage de votre site.

Je ne m’étendrai pas sur l’importance du mot de passe de votre backoffice (car j’ai déjà écrit un article à ce propos), mais c’est un point primordial à respecter.

Ne manquez pas de mettre à jour tous les sites de travail ou vos sites placés en voie de garage et qui ne serait plus exploités (tout en restant accessibles de l’extérieur).
Une version éculée de WordPress sur un site oublié et une porte arrière intéressante pour percer toute votre installation (c’est une situation qu’un site fort connu a expérimenté à ses dépends).

Supprimer enfin tous les utilisateurs à fort pouvoir (administrateur) qui seraient inactifs depuis longtemps sur votre site


Des plugins à votre secours (niv.intermédiaire)

Plugin securité wordpress - Améliorer la sécurité de votre site WordPress

Better WP plugin

Un des meilleurs plugins qui saura efficacement protéger votre site et vous donner des bons conseils. Attention tout de même, certaines protections demandent du doigté.
voir le lien

WP Security Scan

Principalement tourné autour des allocations de permissions de vos fichiers & détection des brèches de sécurité. Moins complet, mais moins délicat à manier que Better WP plugin.
voir le lien

TAC (Theme Authenticity Checker)

Très puissant pour débusquer des codes malicieux dans votre thème. Peut provoquer de sacrés surprises si vous l’appliquez sur un thème gratuit (attention aux thèmes gratuits)
voir le lien


Ajouter des clefs de sécurité secrètes dans le fichier wp-config.php (niv. intermédiaire)

Si vous avez déjà installé par votre propre moyen un site WordPress, vous devriez avoir bien remarqué des codes particulier dans votre fichier wp-config.php (lequel contient les configurations nécessaires pour WordPress fonctionne convenablement). Cette section du fichier de configuration sont des clés d’authentification SALT qui crée un cookie d’identification lequel protège votre installation.
Clef de salage

Si ces codes ne sont pas présent dans votre fichier wp-config.php, vous pouvez les régénérer grâce au lien suivant :
https://api.wordpress.org/secret-key/1.1/salt/

Notez que tout changement de ces clefs de salage aura pour effet d’invalider tous les cookies de votre site et forcera donc chaque utilisateur à se reconnecter sur votre blog.


Supprimer le compte ‘admin’ par défaut (niv. intermédiaire)

Par facilité ou par défaut (sur certains hébergeurs comme OVH) l’identifiant admin est souvent créé pour identifier l’espace d’administration. La popularisation de cet identifiant le rend par nature très sensible : le pirate potentiel n’a plus qu’à se concentrer sur votre mot de passe pour percer votre accès.

identifiant admin wordpress
Si vous disposez d’un tel compte, créer un autre compte alternatif avec les mêmes droits d’administrateur, puis supprimer le compte dont l’identifiant est admin. Cette manœuvre peut se mener même en cours de vie du blog : un système de bascule des anciens articles et pages est automatiquement proposé


Masquer les erreurs de connexion (niv. expert)

Voilà typiquement un comportement de WordPress très ‘user-friendly‘ qui peut s’avérer ‘hacker-friendly‘ lorsqu’il se retourne contre vous. En effet, lors d’une erreur de saisie de votre mot de passe ou de votre login, WordPress vous guide gentiment et indique ce qui ne convient pas. Il s’agit donc de gommer cette fonctionnalité pour ne pas donner d’indice supplémentaire aux méchants pirates qui en veulent à vos données.
Pour cela, nous allons ajouter cette ligne de code à notre fichier function.php de notre thème enfant

add_filter('login_errors',create_function('$a', "return null;"));

Modifier le nom de votre dossier wp-content (niv. expert)

Ouvrez le fichier wp-config.php (il est sage de faire un archivage préalable de ce fichier si important). Aux alentours de la ligne 88-90 (ou de la dernière ligne de wp-config, vous devriez trouver la séquence :

require_once ABSPATH . ‘wp-settings.php’

Ajouter immédiatement en dessous le code suivant

/*modification du nom de dossier wp-content*/
define ('WP_CONTENT_FOLDERNAME', 'nouveau-dossier');
define ('WP_CONTENT_DIR', ABSPATH . WP_CONTENT_FOLDERNAME) ;
define ('WP_CONTENT_URL', 'http://nom-de-domaine'. WP_CONTENT_FOLDERNAME);
define ('WP_PLUGIN_DIR', WP_CONTENT_DIR . '/plugins');
define ('WP_PLUGIN_URL', WP_CONTENT_URL . '/plugins');
/*fin de la modification*/

Remplacer la mention nouveau-dossier par le nouveau nom de dossier de wp-content, et personnaliser la mention votre-domaine avec votre propre URL. Une fois ces manipulations faites et publiées sur wp-config, vous pourrez changer le nom de votre dossier wp-content avec un nom équivalent (sans majuscule, ni accent, ni espace).
Assurez-vous que tout continue à fonctionner sur votre site, en particulier vos divers plugins. S’il s’avère que vous rencontrez un disfonctionnement, il est probable qu’un de vos plugins fasse mention au dossier wp-content, au lieu de faire appel à une fonction telle que use content_url(). Vous devrez alors corriger à la main cette mention dans les plugins défaillants (un bonheur) ou vous passer tout bonnement de ces plugins.

Il est bien entendu capital d’ajouter dans ce nouveau dossier, les composants habituels de wp-content, soit /languages /plugin /themes /upgrade, avec leur contenu légitime.


Protégez-vous contre le hotlinking

J’ai découvert dans les faits le hotlinking par le vol de mon article Archiver sa base de donnée WordPress qui s’est vu affiché sur un autre site que le mien…sans mon autorisation. Mes images ont été victimes de hotlinking, terme que je ne connaissais mal et qui consiste à « utiliser l’adresse d’un fichier publié sur un site web, le plus souvent une image, pour l’afficher sur un autre site, sur un blog » [définition Wikipédia].

Voici quelques lignes de codes que Jonathan B. propose sur http://www.geekpress.fr. J’ai approfondi le sujet et voici le fruit de mes recherches.

Définition

Traditionnellement (j’illustre ici le principe de fonctionnement de façon très grossière, vous trouverez un schéma plus étayé sur cet autre article) votre visiteur consulte le contenu de votre site grâce au serveur qui héberge vos images, vos textes (sur la base de données).
Comment vos articles se propagent sans hotlinking
Dans le cas d’un hotlinking, votre « voleur » aussi maladroit qu’indélicat a copié l’ensemble du code source de votre article et l’a ajouté à une de ses pages.
le fonctionnement duhotlinking

La personne qui consulte votre article croit être au bon endroit sur le site voleur d’article. L’ensemble des images pointent cependant encore votre serveur, ce qui a terme en réduit sa vélocité.

Remède

Nous allons utiliser une fois le plus le .htaccess pour restreindre et rediriger l’emploi de vos images en hotlinking, en ajoutant le petit bout de code. Cette manipulation sera tout partiellement intéressante pour les photographe ou les graphistes dont la production est parfois indûment pillée.

RewriteEngine On

# Remplacer mywebsite.com/ par l'adresse de votre site
# la mention NC rend insensible à la casse (majuscule/minuscule)
RewriteCond %{HTTP_REFERER} !^http://(.+.)?votredomaine.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$

# Remplacer /images/nohotlink.jpg par le chemin de l'image affichée chez les voleurs
# Propose une image alternative lors de l'emploi abusif de vos images
# il est nécessaire de modifier l'url avec votre propre chemin
RewriteRule .*.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]

On peut bien entendu supprimer toutes lignes commentées avec le signe # avant de le poster sur le .htaccess.

Ne manquez pas de sauvegarder la version précédente de ce fichier ; elle vous sera utile si vous faite une erreur de code et que votre site déploit alors une grosse erreur 500 :)


Vous utilisez le plugin Revolution Slider ?

Revolution slider Beaucoup de thèmes utilisent ce plugin, soit coordonné avec le site (l’extension se trouve alors avec les plugins existants installés sur votre site), soit de façon intégrée dans le code et les dossiers de votre thème. Revolution Slider est un plugin puissant, au prix d’être un peu une usine à gaz, ce qui ne l’a pas empêché d’être impacté par une grosse faille de sécurité. Sans vouloir vous faire peur, cette faille à touché beaucoup d’utilisateurs, dont certains très aguerris à WordPress.

Envato a établi une liste de tous les thèmes qui comprennent le plugin Revolution Slider. Le concepteur de l’application a mis également à disposition une version de mise à jour gratuite de cette application. Dans tous les cas avant d’agir, ne manquez pas de faire une archive complète de votre espace ftp et de votre base données pour sécuriser votre installation.

Cas#01 l’extension Revolution slider est intégré dans votre thème

→ Si vous ne voyez pas l’extension présente dans votre liste de plugins, il y a fort à parier qu’elle est intégrée directement dans les tréfonds de votre thème. Je vous conseille alors de retourner sur la boutique sur laquelle vous avez acheté votre thème pour rechercher une mise à jour qui propose un correctif et l’appliquer, ou de mettre à jour votre thème avec la dernière version disponible s’il s’agit d’un template gratuit. Si cette mise à jour n’existe pas, c’est assez problématique car votre site est en danger potentiel. Vous pourriez mettre les mains dans le cambouis pour remplacer manuellement les fichiers défaillants, mais ne connaissant pas la façon dont le développeur a intégrer l’extension, ce n’est pas nécessairement un conseil que je donnerai. La seule solution est de changer de thème ou de faire appel à un développeur pour faire cette mise à jour.

Cas#02 l’extension Revolution slider est comprise dans vos extensions

→ Je vous invite alors d’aller sur votre espace ftp dans wp-content/plugins/ et de rechercher le dossier relatif à Revolution slider. Ouvrez le, et supprimez tous sont contenu. Remplacer le sans tarder avec le contenu que vous avez nouvellement téléchargez. L’ensemble de vos réglages (présent sur la base de données et non sur l’espace FTP) seront préservés.

Vous avez été piraté ? Voici quelques outils

anti malware security

Anti-Malware Security and Brute-Force Firewall

https://fr.wordpress.org/plugins/gotmls/Cet outil est intéressant même vous n’avez pas été attaqué. Il est en mesure de lancer un scan complet et de supprimer automatiqueement les éventuellement menace et faille qu’il pourrait detecter. Il est également assorti d’un firewall qui protège contre les malware issus de plugin comme Revolution slider ou timthumb. Il se met à jour constamment avec de nouvelles liste de menaces et malware Existe en version premium

Vous n’avez pas le temps, voici en résumé la sécurité pour les super-pressés

  1. Archiver
  2. Supprimer le readme.html à la racine de WordPress
  3. Maintenir la version de WordPress et les plugins à jour
  4. Utiliser un mot de passe long comportant une multitude de caractères différents

85 réponses
    • Fabrice Court
      Fabrice Court dit :

      Bonjour Stéphane
      iTheme Security n’est pas mon extension préférée pour plusieurs raisons trop longues à détailler ici. Pourquoi ne pas essayer Secupress pour une alliance avec WooCommerce. L’extension est très paramétrable et le support très réactif en cas de mal-fonction.

      Répondre
  1. Rémy
    Rémy dit :

    Bonjour Fabrice

    Je voulais tout simplement te remercier pour les contenus de ton site.

    Car on dois toujours encourager le bon travail

    Répondre
  2. Victor
    Victor dit :

    Bonjour Fabrice, j’aimerais changer le nom du thème qui apparait lorsqu’on regarde dans le code source de mon site web. J’aimerais qu’il y apparaisse le nom de mon thème enfant plutôt que celui du thème parent. Comment faire?

    Répondre
  3. DalilaM
    DalilaM dit :

    Bonjour j’aimerai cacher la version de mon WP. J’ai essayé de trouver le fichier function.php dans mon theme enfant mais en vain. Comment faire dans ce cas ?

    Merci d’avance de votre retour.

    Répondre
    • Fabrice Court
      Fabrice Court dit :

      Bonjour Dalila

      S’il n’existe pas…Créer le :)
      Mais créer le avec un éditeur de texte comme Notepad++(PC) ou Smultron (Mac)
      Nommez le functions.php et ajoutez des balises PHP ( <?php ..(votre contenu)… ?>) pour qu’il soit convenablement pris en compte.

      Répondre
  4. salut
    salut dit :

    Bonjour, merci pour ces astuces mais j’ai un souci, quand je met

    order allow,deny
    deny from all

    Dans mon fichier .htaccess mon site n’est plus accessible …
    Que ce que je fait mal ?

    Je suis WordPress à jour et hébergé chez OVH.

    Merci d’avance.

    Répondre
    • Fabrice Court
      Fabrice Court dit :

      Merci de votre commentaire
      Essayez avec
      <Files .htaccess>
      order allow,deny
      deny from all
      </Files>

      NDLR : ce code était présent, mais il est parfois complexe d’afficher des « < > » sans que cela soir pris pour du code par WordPress :)

      Répondre
  5. jcleclercq
    jcleclercq dit :

    Suite à un hack sur son site wordpress, j’ai du aider un ami pour qu’il retrouve son blog !
    Merci pour cette piqure de rappel et tout ces conseils. J’en prends bonne note pour lui et moi-même ^^

    Répondre
  6. Jean-Luc
    Jean-Luc dit :

    Bonjour, excellent article. Je rencontre un problème pour mettre en place votre suggestion de protection contre les hotlinks en appliquant votre suggestion de modification du .htaccess et le renvoi vers une image par défaut. J’ai fait le test en intégrant le code sur un de mes sites et en appelant l’url d’une image de ce site depuis un autre site. Le renvoi vers l’image par défaut ne fonctionne pas. Merci d’avance pour votre aide

    Répondre
  7. grols
    grols dit :

    Bonjour,
    voila j’utilise WordPress 3.4.2 et depuis peu je ne peux plus acceder a mon espace administration widget (uniquement pour parametrer les widgets, ailleurs c’est ok) dans mon site,

    j’ai le message d’erreur :
    Erreur d’encodage de contenu
    La page que vous essayez de voir ne peut être affichée car elle utilise un type de compression invalide ou non pris en charge.
    Veuillez contacter les propriétaires du site pour les informer de ce problème.

    j’ai vide le cache meme pb autant sous firefox que chrome…. j’ai aussi desactive les plugins les plus recement installes…. mais pas mieux…
    Merci pour vos bons conseils

    Répondre
    • Fabrice Court
      Fabrice Court dit :

      Il est délicat de vous donner un analyse de votre souci à distance, mais je bute néanmoins sur les premiers mots de votre commentaire « j’utilise WordPress 3.4.2 « …N’allez pas plus loin, la réponse est là : vois utilisez une version hors d’âge et votre site peut rencontrer de l’instabilité. Il est en tout cas en péril de ce point de vue là.

      Répondre
      • grols
        grols dit :

        Bonjour,
        J’ai trouve le coupable c’est un pluging (google analyticator) qui m’a mis la pagaille, c’est bon c’est resolu en le desactivant (pourtant cela fait un bon moment que je tourne avec mais google a dut faire des modifs de son cote qui m’ont pollue mon site…) ;-)
        Je n’ai pas ose sauter le pas de mettre a jour vers une version recente pour le moment (surtout du fait d’utilisation de pluging qui risquent fort de ne plus bien fonctionner apres – style Ajax Event calendar) et aussi de se retrouver avec une base verollee
        Merci

        Répondre
  8. Diane
    Diane dit :

    Super article ! Une petite question pour modifier le fichier htaccess. Si on ne l’a pas ouvert avec notepad++ la première fois et qu’on ne nous demande plus avec quel logiciel l’ouvrir, comment fait-ton pour « revenir en arrière » et pouvoir le modifier ?
    Merci beaucoup :)

    Répondre
    • Fabrice Court
      Fabrice Court dit :

      Merci de votre aimable commentaire
      Cette question est toutefois plus « Windows » que « WordPress » : ) Pour réussir cela (à moins que je me méprenne sur le sens de votre question), il faut faire un clic droit sur le fichier, puis « ouvrir avec » > Notepad ++

      Répondre
  9. léo
    léo dit :

    Bonjour, pour ‘Modifier le nom de votre dossier wp-content’, je suis hébergé chez hostgator et je précise qu’il faut placer le dossier ‘ressources’ avec tout ce qu’il y a dans le dossier wp-content à la racine de ‘public_html’ et non à la racine de tout le site web sinon ça ne marche pas pour ma part.

    Répondre
  10. Maintenance informatique Rouen
    Maintenance informatique Rouen dit :

    Merci pour ce superbe billet …
    Pour sécuriser facilement et efficacement votre site wordpress je vous recommande d installer l extension ITheme security …
    Ce plugins de sécurité détecte tout ce qui ne va pas ,reste à cliquer afin de corriger les problèmes ,Itheme security permet également de renommer le compte administrateur de modifier votre fichier .htacess…..
    Une extension fiable et très bien noté …

    Répondre
  11. Informatique sur Rouen
    Informatique sur Rouen dit :

    Merci pour tout ces bons conseil je vous recommande l extension itheme security simple et intuitif …
    Ce plugin détecte les problèmes il y a juste a cliquer afin de les corriger …si vous n êtes pas sur de ce vous faite ne touchez pas aux options avancé …

    Répondre
  12. Vanige
    Vanige dit :

    Bonjour,
    Je suis débutant en WP et je suis très intéressé par cet article. Mais j’ai qq questions :
    – pour le contenu de .htaccess, il me semble qu’il manque qq chose dans le texte de l’article :

    → Protégez votre fichier wp-config.php grâce à ce code ajouté en bas de votre fichier .htaccess (note, si ce fichier n’existe pas encore dans votre configuration, vous pouvez l’ajouter à la main en le nommant ‘.htaccess’ (sans les apostrophes) .
    order allow,deny
    deny from all

    Est-ce qu’il ne faut pas encadrer de «  » et  » ?

    – pour modifier les fonctions du thème : je n’ai pas de fichier function.php mais functions.php (avec un s) et le fichier contient donc plusieurs fonctions. Où faut il insérer le code « remove_action(« wp_head », « wp_generator »); » ?

    – enfin je ne comprends pas bien les clés SALT, mais je vais me renseigner :)

    Merci pour votre article en tout cas.

    Répondre
    • Fabrice Court
      Fabrice Court dit :

      Merci de vos précieuses corrections Vanige ! Les entêtes ont parfois tendances à se supprimer dans les parties codées (j’ignore pourquoi) : cela est corrigé grâce à vos soins.

      • Concernant l’ajout dans le fichier functions.php, vous pouvez l’ajouter en queue du fichier de votre thème, mais l’idéal est de créer soit un thème enfant, soit un mu-plugins pour l’ajouter (je ferais un article à ce propos prochainement)

      • Concernant les clefs Salt, ne vous faites pas de soucis…elles sont bien souvent déjà présentes dans le fichier wp-config à la racine de votre site. Si ce n’est pas le cas, vous pouvez les régénérez avec ce lien

      Excellente continuation !

      Répondre
  13. réparation iphone
    réparation iphone dit :

    Je suis victime d’un piratage sur mon site web qui tourne sous wordpress, il explore les failles de certains plugins comme pour faire de l’envoi massif de mails.
    J’ai du mettre à jour wordpress et les plugins, j’ai installé wordfence et configuré il m’a fourni un rapport avec son adresse ip (Ukraine) cependant le hacker arrive à exploiter encore des failles (sur la racine du FTP) pour envoyer des mails massifs.
    Sur mon hébergeur, il m’indique qu’il fait l’envoi de mails massifs via une faille à la racine de mon FTP mais je ne vois pas qu’est ce qu’il peut exploiter comme fichier…

    Répondre
    • Fabrice Court
      Fabrice Court dit :

      Il est difficile de vous répondre sans analyser plus avant votre site.
      Des scanners en ligne comme Sucuri ne décèlent pas de présence maligne.

      Coté référencement votre site aura en tout cas de la difficulté à atteindre une bonne renommée (malgré All in one SEO Pack), surtout au regard de la dernière mise à jour de Google et de son algo Phantom 2 qui met en avant la qualité.

      Votre homme propose pas moins de 16 domaines externes et 88 liens vers lesquels le visiteurs peut s’envoler
      Beaucoup de contenu dupliqué (pas de réel personnalisation des pages par ville)
      Beaucoup de contenu publicitaire.
      Pas de mentions légales ni de contact (ce n’est pas du SEO, mais c’est la loi en l’occurrence)
      Pas de call to action…ON se demande bien où et comment on va réparer ton cellulaire.

      Je vous conseille de remettre votre site à plat et de clarifier votre offre.
      Le fait de faire le ménage dans les fenêtre pub va potentiellement résoudre pas mal de soucis.

      Bon courage

      Répondre
  14. Nhl
    Nhl dit :

    Bonjour
    Tout d’abord merci pour toutes ces informations ,
    en effet j’ai changé le nom de la répertoire Upload en utilisant la technique de définir le nom de la nouveau répertoire dans la fichier wp-config mais malheureusement
    maintenant il n’est pas possible d’uploader une nouvelle image .ya t’il un moyen ou une technique pour résoudre ce problème ?

    Répondre
    • Fabrice Court
      Fabrice Court dit :

      Essayez sinon de rajouter seulement

      define('UPLOADS', 'wp-content/monNouveauNom');

      Avant la ligne

      require_once(ABSPATH.’wp-settings.php’);

      (soit vers la ligne 90 -120, en fond de page de wp-config.php

      Répondre
  15. Michael
    Michael dit :

    Bonjour Fabrice,

    J’ai essayé d’appliquer à la lettre votre tuto pour renommer le ‘wp-content’.
    Surprise: plus rien ne fonctionnait.
    Plus de traduction en français, retour à la version anglaise native ;
    Plus d’accès au plugin ;
    Plus un thème disponible;
    Bref, aucun accès au contenu du dossier !
    J’ai du faire machine arrière,dommage…
    Ou est le bug ?
    Merci, et merci pour ce tuto très clair
    (tout le reste fonctionne parfaitement bien :)
    Michaël

    Répondre
    • Fabrice Court
      Fabrice Court dit :

      Bonjour Michael

      j’ai pris du temps pour retester cette solution ce matin sur un site en développement. Il y avait des espaces manquants dans le code, mais qui à mon sens ne gênaient que les grammairiens PHP. J’ai donc normalisé cela, et de mon coté cela fonctionne fort bien. Je vous invite à re-tester la manip.
      Note : il est évidemment capital d’ajouter tous les dossiers présents dans wp-content avant de lancer ce changement de route, sans quoi ni les plugins, ni la traduction n’apparaitront.

      Répondre
  16. jean-paul
    jean-paul dit :

    Bonjour,

    Concernant le fichier functions.php de votre thème, méfiez vous des mises à jour, car il faudra vérifier si elles ne l’auront pas modifié. Je vous conseille de créer un thème enfant pour ne plus avoir à vous en soucier. De plus, si vous avez modifié la feuille de styles, ces modifs ne seront pas concernées et vous n’aurez plus de sueurs en constatant que tout se retrouve en désorde ;)

    Répondre
    • Fabrice Court
      Fabrice Court dit :

      Bonjour Jean-Paul

      Merci de votre commentaire. C’était pour moi implicite, mais je vais ajouter cette nuance dans l’article. Je parlais bien évidemment d’un fichier functions.php présent dans le thème enfant, et nulle part ailleurs.

      Bonne continuation

      Répondre
  17. Yacine
    Yacine dit :

    Bonjour
    Je vous remercie d’abords pour ce tuto très intéressant.
    Maintenant il y’a certain ligne qui me font un retour d’erreur 500 quand je les ajoutes dans.htaccess
    Ex: « Options All -Indexes »
    ou encore:
    <Files wp-config.php>
    order allow,deny
    deny from all

    Merci par avance
    </Files>

    Répondre
    • Fabrice Court
      Fabrice Court dit :

      Bonjour Yacine
      Merci de votre commentaire. Il n’y a pourtant pas de quoi provoquer une erreur 500 dans ce que vous avez ajouté :)
      Je vous propose de juste ajouter
      Options All -Indexes
      Dans un premier temps, puis si tout va bien
      <Files wp-config.php>
      order allow,deny
      deny from all
      </Files>
      pour protéger votre fichier wp-config
      Tenez moi au courant…Très bonne journée

      Répondre
      • Yacine
        Yacine dit :

        Merci pour votre retour rapide Fabrice.
        Alors j’ai essayé ceci:
        1/ J’ai juste ajouté Option All -Index => Toujours erreur 500 et je suis presque sûr que c’est lié à mon hébergeur.
        2/Quand je supprime carrément le fichier .htacces il n’a plus de navigation interne :) mais je ‘oserais pas :)
        Merci encore.

        Répondre
        • pissenlit74
          pissenlit74 dit :

          SI ça peut aider d’autres personnes, il suffit de réactiver la structure personnalisée des permaliens dans réglages.
          J’ai le même soucis à chaque fois que je modifie le fichier .htaccess !

          Répondre
  18. P.M
    P.M dit :

    Attention la version Acunetix WP Security plugin 4.0.3 ne fonctionne pas Chez O.V.H et d’après les forum WP cela touche d’autres hébergeurs…

    Répondre
  19. Jerem
    Jerem dit :

    Bonjour,

    Je rencontre une difficulté notable avec Better WP Security (Renommé Acunetix). Bien que je coche le fait de masquer la version de wordpress, elle est toujorus disponible via le code source du site, étant connecté en tant qu’admin ou (sur un autre poste). Quelqu’un a-t-il constaté la même chose?

    Il en va de même pour le « masquage » des autre données liées à la version. Elles sont toutes disponibles.

    J’ai d’abord cru à un pb lié au thème (testé d’abord sur Twentythrteen) mais le problème persiste sur tous les thèmes. Du cou cela devient gènant d’utiliser ce plugin s’il faut manuellement modifier certaines ligne de code.

    Votre avis?

    Répondre
    • Fabrice Court
      Fabrice Court dit :

      Bonjour Jerem
      Il ne faut pas perdre de vue que Better WP Security est un simplificateur pour votre sécurité. Bien des opérations proposées par le plugin peuvent être remplacées par une démarche sur vos fichiers, ou un ajout de code dans functions.php (en l’occurrence, le chapitre Masquez votre version dans mon article aborde ce problème).
      Dans la doc de Better WP security, il est indiqué « Display a random version number to non administrative users anywhere version is used« . Est-ce que la version affichée correspond à la réalité de votre installation, ou est-elle fantaisiste ?

      Répondre
      • Jerem
        Jerem dit :

        Bonjour et merci pour votre réponse rapide.

        J’ai en effet opté pour la version manuelle de modification de fichier, ne trouvant pas la source du pb avec le plugin en question. Mea culpa, j’étais en train d’expérimenter le plugin « Acunetix » (anciennement appelé « WP Security Scan »). Je suis en trin d’expérimenter Better WP security qui semble très bien fonctionner :)

        Répondre
  20. mayane
    mayane dit :

    Merci beaucoup pour cet article de qualité. Pour une débutante comme moi, malgré tous les tutos que j’ai vu sur le sujet, j’ai trouvé que celui ci était simple à comprendre et à mettre en pratique. Je ne connaissais pas le hotlinking. Pour une fois j’ai hâte de m’affairer à la sécurité de mon blog!

    Répondre
  21. syl20
    syl20 dit :

    bonjour
    c’est toujours très instructif d’avoir des conseils de sécurité. Je gère plusieurs site WP avec des template différents, j’ai un soucis avec un site ou les hackers mettent un fichier index.php sur le ftp, je n’ai donc plus accès au site. Ce n’est pas bien méchant par contre c’est vraiment pénible tous les 15 jours cela me prends 10mn pour mettre le bon fichier.
    Auriez vous une solution?
    Merci de votre réponse

    Répondre
    • Fabrice Court
      Fabrice Court dit :

      Bonjour Syl20

      Si vous avez sécurisez votre site en modifiant l’ensemble des mots de passe qui le régisse (pour des plus complexes), et ajouté les quelques verrous proposés dans cet article, vous devriez être en relative sécurité.
      Je ne suis pas un grand spécialiste, mais si un hacker peut encore parvenir à forcer votre accès, il est probable qu’il y ait une ‘backdoor’ présente sur votre site, soit sous la forme d’un petit fichier que vous n’avez pas encore supprimé, soit à cause d’un plugin défaillant qui provoque une grosse brèche de sécurité.

      Je peux difficilement vous répondre. Vous pouvez utilisez Better WP Security pour constater qui intervient de façon récurrente sur votre site. Bannissez son IP si elle est fixe (ce qui est peu probable). Réduisez en tout cas au maximum la voilure concernant l’utilisation de plugins.

      Bon courage !

      Répondre
  22. Julien Maury
    Julien Maury dit :

    Merci pour la citation Fabrice. Pour ce qui concerne la protection des répertoires, il y a plus simple que rajouter un fichier index.html vide ou presque dans chaque dossier. Il faut insérer une règle dans le .htaccess à la racine de l’installation (le .htaccess principal du site):

    Options All -Indexes

    Avec ça pas de navigation possible dans les dossiers

    Répondre
  23. Philippe
    Philippe dit :

    Merci énormément concernant la solution au problème :

    /homez.335/lamicali/www/wp-content/plugins/wp-native-dashboard/langswitcher.php on line 28

    En effet en ajoutant le ‘-old’ juste derrière le plugin dashboard via filezilla j’ai pu accéder à nouveau à mon site.

    Il y a des chances que je revienne sur votre site qui est très intéressant.
    Bonne continuation.

    Répondre
    • France-Anne Blanchet
      France-Anne Blanchet dit :

      Pour info, j’ai dû supprimé complètement native dashboard sur deux de mes trois sites sécurisés grâce à cet article de Fabrice. Je ne comprends pas trop pourquoi cela fonctionne sur un, mais l’important, c’est qu’on puisse accéder au pannel sans difficultés. ;o)

      Répondre
  24. France-Anne
    France-Anne dit :

    Bon, j’suis vraiment désolée de vous déranger à nouveau. Je rencontre un problème différent sur un autre de mes sites où j’ai installé Wordfence http://franceanne.hannicar.com . Le site à ouvert, j,ai tenté de me connecté via le widget et l’erreur suivant est apparue sur une page blanche HTTP/1.0 401 Authorization Required

    Maintenant, je n’ai plus accès au site, je n’ai que cette erreur… Une idée?

    Répondre
  25. France-Anne Blanchet
    France-Anne Blanchet dit :

    Bonjour!

    Merci pour toutes ces infos!! Un ami m’a fait peur hier en me disant que les sites WP ne pouvaient pas être bien sécurisés. Comme je gère plusieurs sites, ça m’a vraiment inquiétée! Vous m’avez rassurez!

    Sinon, question hors sujet : Vous pouvez m’expliquer votre Widget « Témoignages » c’est un widget texte? Merci!!

    Répondre
    • Fabrice Court
      Fabrice Court dit :

      Merci de votre commentaire France-Anne

      La vulnérabilité de WP vient également du fait que c’est un CMS ouvert et très popularisé, mais comme vous l »avez bien compris, si vous appliquez les consignes de base et que vous gérez avec discernement votre site, vous serez protégée contre la plupart des attaques.

      Le plugin que j’utilise pour afficher les témoignages n’est pas une adaptation du widget texte, mais une extension à part entière qui se nomme Testimonials Widget par Michael Cannon

      Répondre
      • France-Anne
        France-Anne dit :

        Bon, j’ai un gros problème. Je n’arrive pas à ouvrir mon panel contrôle. Pas non plus à me déloguer ou me reloguer. Après quelques lectures il semble que Wordfence soit à l’origine du problème. Voici l’erreur qu’on me donne :
        Fatal error: Call to a member function add_menu() on a non-object in /home/franceanne/helenelaplante.com/www/wp-content/plugins/wp-native-dashboard/langswitcher.php on line 28

        J’ai supprimé native dashbord par mon ftp et dans ma base de données sans succès. Vous avez une idée de ce que je dois faire?
        Merci de m’aider…

        Répondre
        • Fabrice Court
          Fabrice Court dit :

          Bonjour France-Anne
          Il est bizarre que le problème perdure alors que vous avez supprimé physiquement le plugin en ftp.
          En indiquant l’adresse http://www.helenelaplante.com/wp-content/plugins/wp-native-dashboard/screenshot-1.png sur un navigateur, on tombe sur un des fichiers du plugin…Vous ne l’avez donc pas supprimé complètement.
          → Via ftp, ajoutez un ‘-old’ derrière le nom du plugin dans wp-content/plugins et retenter de rentrer ensuite sur votre admin

          Répondre
          • France-Anne
            France-Anne dit :

            Bon, vous aviez raison, il n’avait pas tout supprimé. MERCI!

            Maintenant, sur la page des extensions il est inscrit en haut en rose : L’extension wp-native-dashboard/wp-native-dashboard.php a été désactivée suit à l’erreur : Le fichier de l’extension n’existe pas.
            Ça veut dire qu’il y a quelque chose que je n’ai pas supprimé dans MySQL? Et autres question bête, je pourrai réinstaller le native ensuite où ce plugin entre en conflit par défaut avec Wordfence?

          • France-Anne
            France-Anne dit :

            Bon, plus de message en haut de ma page d’extension. Merci!! Si vous pouviez seulement me dire maintenant si je peux réinstaller l’extension sans que ça cause problème.

          • Fabrice Court
            Fabrice Court dit :

            re…
            Pour l’inscription rose, ce n’est pas grave, cela se va se résoudre tout seul.
            Par rapport à d’éventuels conflits entre vos 2 extensions, je ne pourrais pas vous répondre (et pas sûr que beaucoup puisse le faire, car il faudrait maîtriser toutes les interactions entre des deux plugins). Vous pouvez remettre votre extension native-dashboard en fonction si vous le désirez ; au pire si cela ne fonctionne pas, vous la supprimerez comme vous l’avez déjà fait.
            Si vous rencontrez des soucis, je vous conseille de contacter l’auteur de l’extension sur le site code-styling.de (faite le en Allemand ou en Anglais) et de lui préciser votre message d’erreur et votre parc d’extension. Il pourra alors faire éventuellement un correctif si l’erreur est générée par son plugin.

        • Julien D.L
          Julien D.L dit :

          Bonjour,

          J’ai exactement le même problème depuis que j’ai mis à jour mon site aujourd’hui. Etant novice je n’ai aucune idée de la méthode pour supprimer ce plugin via le ftp ( je ne sais même pas ce qu’est un ftp)

          Fatal error: Call to a member function add_menu() on a non-object in /homez.548/memoireef/www/wp-content/plugins/wp-native-dashboard/langswitcher.php on line 28

          J’espère pouvoir obtenir de l’aide assez rapidement et au passage me mettre à niveau…

          Merci,

          Cordialement Julien.

          Répondre
  26. Dreamer
    Dreamer dit :

    Bonjour

    Billet très intéressant, on se croit en sécurité et ces quelques précautions s’avèrent ne pas être superflus !!

    Merci

    Répondre

Trackbacks (rétroliens) & Pingbacks

Ajouter un commentaire

Rejoindre la discussion?
N’hésitez pas à contribuer !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *