Tutoriels WordPress de confiance, quand vous en avez le plus besoin.
Guide du débutant pour WordPress
WPB Cup
25 millions+
Sites web utilisant nos plugins
16+
Années d'expérience WordPress
3000+
Tutoriels WordPress par des experts

Comment désactiver l'exécution de PHP dans certains répertoires WordPress

Repérer un fichier PHP inconnu dans votre dossier d'uploads WordPress est un moment terrifiant. Nous avons aidé des milliers d'utilisateurs paniqués à sécuriser leurs sites après avoir découvert cette vulnérabilité exacte.

Ce problème expose une faille de sécurité cachée qui laisse votre site web vulnérable aux attaquants. Les pirates utilisent ces répertoires non protégés pour télécharger des scripts malveillants et créer des portes dérobées cachées.

Heureusement, vous pouvez bloquer cette méthode d'attaque courante avec quelques ajustements rapides. Désactiver l'exécution de PHP dans WordPress rend plus difficile pour les acteurs malveillants de prendre le contrôle de votre site web.

En bloquant l'exécution de PHP dans les répertoires WordPress où elle n'est pas nécessaire, vous fermez une faille de sécurité majeure.

Nous vous montrerons exactement comment protéger votre site étape par étape. Lisez la suite pour apprendre à sécuriser vos répertoires WordPress et à protéger votre travail acharné.

Comment désactiver l'exécution de PHP dans certains répertoires WordPress

Pourquoi désactiver l'exécution de PHP dans certains répertoires WordPress ?

Par défaut, WordPress rend certains répertoires inscriptibles afin que vous et d'autres utilisateurs autorisés sur votre site Web puissiez facilement télécharger des thèmes, des plugins, des images et des vidéos sur votre site Web.

Cependant, cette capacité peut être détournée si elle tombe entre de mauvaises mains, comme des pirates informatiques qui peuvent l'utiliser pour télécharger des fichiers d'accès backdoor ou des logiciels malveillants sur votre site web WordPress.

Ces fichiers malveillants sont souvent déguisés en fichiers de base de WordPress. Ils sont principalement écrits en PHP et peuvent s'exécuter en arrière-plan pour obtenir un accès complet à tous les aspects de votre site Web.

Ça semble effrayant, n'est-ce pas ?

Ne vous inquiétez pas. Il existe une solution simple pour cela. Désactivez simplement l'exécution de PHP dans certains répertoires où vous n'en avez pas besoin. Ce faisant, aucun fichier PHP ne s'exécutera dans ces répertoires.

Examinons comment améliorer la sécurité de WordPress en désactivant l'exécution de PHP à l'aide du fichier .htaccess.

Désactiver l'exécution de PHP dans certains répertoires WordPress à l'aide du fichier .htaccess

La plupart des sites WordPress ont un fichier .htaccess dans le dossier racine. Il s'agit d'un fichier de configuration utilisé par Apache, l'un des types de logiciels de serveur web les plus populaires. (Si votre hébergeur utilise un serveur différent comme Nginx, ne vous inquiétez pas, nous en parlons dans la section FAQ ci-dessous.)

Note : Si vous utilisez un fournisseur d'hébergement Managed WordPress Hosting, il est probable qu'il bloque déjà l'exécution de PHP dans votre dossier d'uploads par défaut pour protéger votre site. Si vous n'êtes pas sûr, vous pouvez toujours contacter leur équipe de support pour vérifier !

Ce puissant fichier de configuration est utilisé pour protéger par mot de passe la zone d'administration, désactiver la navigation dans les répertoires, générer une structure d'URL optimisée pour le SEO, et plus encore.

Par défaut, le fichier .htaccess est situé dans le dossier racine de votre site Web WordPress, mais vous pouvez également créer et utiliser des fichiers .htaccess supplémentaires à l'intérieur de vos répertoires WordPress internes.

Pour protéger votre site web contre les fichiers d'accès par porte dérobée, vous devez créer un fichier .htaccess et le téléverser dans le répertoire /wp-content/uploads de votre site. C'est l'endroit le plus courant où les pirates essaient de cacher des scripts malveillants, ce qui en fait le dossier le plus important à sécuriser.

Créez simplement un nouveau fichier sur votre ordinateur à l'aide d'un éditeur de texte brut comme le Bloc-notes (sous Windows) ou TextEdit (sous Mac). Si vous utilisez un Mac, assurez-vous d'aller dans Format » Rendre le texte brut dans le menu supérieur.

Ensuite, enregistrez le fichier vide et nommez-le exactement .htaccess (assurez-vous qu'il ne s'enregistre pas accidentellement sous le nom .htaccess.txt).

Copiez et collez maintenant le code suivant dans votre fichier .htaccess :

<Files *.php>
  Require all denied
</Files>

Ce code indique à votre serveur de bloquer toute tentative d'exécution directe d'un fichier se terminant par .php à partir de ce dossier. Une fois que vous avez collé le code, enregistrez le fichier.

Ensuite, vous devez télécharger ce fichier dans les dossiers /wp-includes et /wp-content/uploads sur votre serveur d'hébergement WordPress.

Astuce de pro : Si vous faites une erreur et que votre site web affiche une erreur après avoir téléchargé ce fichier, ne paniquez pas ! Utilisez simplement votre client FTP pour supprimer le fichier .htaccess que vous venez de télécharger, et votre site reviendra instantanément à la normale.

Vous pouvez le télécharger en utilisant un client FTP ou l'application Gestionnaire de fichiers dans le tableau de bord cPanel de votre compte d'hébergement.

Cliquer sur le bouton Télécharger dans le gestionnaire de fichiers Bluehost

Une fois que le fichier .htaccess avec le code ci-dessus est ajouté, il empêchera l'exécution de tout script PHP dans ces répertoires.

Bonus : Désactiver la navigation dans les répertoires sous WordPress

Pendant que vous modifiez votre fichier .htaccess, nous vous recommandons vivement de prendre une mesure supplémentaire pour améliorer la sécurité de votre WordPress : désactiver la navigation dans les répertoires.

Par défaut, si votre serveur web ne trouve pas de fichier d'index (comme index.php ou index.html) dans un dossier, il affichera automatiquement une page montrant tous les fichiers et dossiers à l'intérieur de ce répertoire.

Les pirates adorent la navigation dans les répertoires car elle leur permet de parcourir facilement vos fichiers et de rechercher des vulnérabilités.

Pour arrêter cela, vous pouvez simplement ajouter une ligne de code à votre fichier .htaccess principal de votre site web (celui situé dans votre répertoire racine, pas celui que vous venez d'ajouter à votre dossier d'uploads) :

Options -Indexes

Pour des instructions plus détaillées, vous pouvez consulter notre guide dédié sur comment désactiver la navigation dans les répertoires sous WordPress.

Vérifier les portes dérobées dans WordPress avec Sucuri

L'utilisation de cette astuce .htaccess permet de renforcer la sécurité de votre WordPress, mais elle ne réparera pas un site WordPress déjà piraté.

Les portes dérobées sont intelligemment déguisées et peuvent déjà être cachées à la vue de tous.

Si vous souhaitez vérifier les éventuels backdoors sur votre site web, vous devez activer Sucuri sur votre site.

Sucuri

Sucuri est le meilleur plugin de sécurité WordPress du marché. Il analyse votre site web à la recherche de menaces potentielles, de code suspect, de logiciels malveillants et de vulnérabilités.

Il bloque également efficacement la plupart des tentatives de piratage avant même qu'elles n'atteignent votre site web en ajoutant un pare-feu entre votre site et le trafic suspect.

Plus important encore, si votre site WordPress est piraté, il le nettoiera pour vous. Pour en savoir plus, vous pouvez lire notre avis sur Sucuri car nous utilisons leur service depuis des années.

Vous pouvez en savoir plus dans notre guide sur la recherche et la correction des backdoors dans un site WordPress piraté.

Questions fréquemment posées sur la désactivation de l'exécution PHP

Voici quelques-unes des questions les plus courantes que nous recevons concernant le renforcement de la sécurité de WordPress en désactivant l'exécution PHP dans certains répertoires.

1. Qu'est-ce qu'un fichier .htaccess et où se trouve-t-il ?

Le fichier .htaccess est un fichier de configuration de serveur utilisé par les serveurs web Apache. Dans WordPress, il contrôle des éléments tels que la structure d'URL de votre site web et peut être utilisé pour ajouter des règles de sécurité. Vous le trouverez généralement dans le dossier racine principal de votre installation WordPress.

2. La désactivation de l'exécution PHP dans le dossier des téléchargements va-t-elle casser mon site web ?

Non, cette mesure de sécurité ne devrait pas affecter le fonctionnement normal de votre site web. Le répertoire wp-content/uploads est uniquement destiné aux téléversements de médias tels que les images et les vidéos, et non à l'exécution de fichiers PHP. Vos thèmes et plugins conservent leurs fichiers nécessaires dans des dossiers séparés où l'exécution de PHP est toujours autorisée en toute sécurité.

3. Cette astuce .htaccess est-elle suffisante pour sécuriser complètement mon site ?

Bien qu'il s'agisse d'une mesure de sécurité efficace et importante, elle ne fait partie que d'un plan de sécurité complet. Une stratégie complète devrait également inclure l'utilisation d'un plugin de sécurité WordPress, la mise à jour de tous vos thèmes et plugins, et l'application de mots de passe forts pour tous les utilisateurs.

4. Et si mon hébergeur utilise Nginx au lieu d'Apache ?

L'astuce du fichier .htaccess ne fonctionne que sur les serveurs web Apache. Si votre fournisseur d'hébergement WordPress utilise Nginx, vous ne pouvez pas utiliser un fichier .htaccess pour désactiver l'exécution de PHP dans les répertoires WordPress.

Au lieu de cela, Nginx nécessite l'ajout d'une règle spécifique (un « bloc de localisation ») directement dans le fichier de configuration nginx.conf de votre serveur pour refuser l'accès PHP dans le dossier des téléversements.

Remarque : La modification des fichiers de configuration Nginx est une tâche avancée. Une seule erreur de syntaxe peut faire planter l'ensemble de votre serveur web. De plus, de nombreux hébergeurs WordPress gérés restreignent l'accès à ces fichiers principaux.

Pour cette raison, nous vous recommandons vivement de contacter l'équipe de support de votre fournisseur d'hébergement. Ils peuvent ajouter en toute sécurité les règles de refus Nginx correctes à votre serveur en quelques minutes.

5. Que dois-je faire si je reçois une erreur après avoir ajouté le fichier .htaccess ?

Tout d'abord, ne vous inquiétez pas ! Vous n'avez pas cassé votre site de façon permanente. Supprimez simplement le fichier .htaccess que vous venez de téléverser dans votre dossier /wp-content/uploads, et votre site sera de nouveau en ligne.

Si vous avez vu une « Erreur interne du serveur 500 » après avoir téléversé le fichier, cela signifie généralement que votre hébergeur utilise une ancienne version du logiciel serveur Apache. Pour résoudre ce problème, ouvrez votre fichier .htaccess et remplacez le code que vous avez ajouté par l'extrait suivant à la place :

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

Enregistrez le fichier et téléchargez-le à nouveau. Cette ancienne version du code fait la même chose mais est compatible avec les serveurs obsolètes.

Ressources supplémentaires sur la façon d'améliorer la sécurité de WordPress

Nous espérons que cet article vous a aidé à apprendre comment désactiver l'exécution de PHP dans certains répertoires WordPress pour renforcer la sécurité de votre site Web. Vous voudrez peut-être également apprendre d'autres techniques de sécurité. Voici quelques-uns de nos meilleurs guides sur l'amélioration de la sécurité de WordPress :

Si vous avez aimé cet article, abonnez-vous à notre Chaîne YouTube pour des tutoriels vidéo WordPress. Vous pouvez également nous trouver sur Twitter et Facebook.

Divulgation : Notre contenu est soutenu par nos lecteurs. Cela signifie que si vous cliquez sur certains de nos liens, nous pouvons gagner une commission. Consultez comment WPBeginner est financé, pourquoi c'est important et comment vous pouvez nous soutenir. Voici notre processus éditorial.

La boîte à outils WordPress ultime

Accédez GRATUITEMENT à notre boîte à outils - une collection de produits et de ressources liés à WordPress que tout professionnel devrait posséder !

Interactions des lecteurs

42 CommentsLeave a Reply

  1. concernant la désactivation des exécutions PHP dans le dossier wp-includes pour empêcher l'exécution de tout code de porte dérobée, etc. – mais il semble y avoir de nombreux fichiers PHP dans ce dossier, par exemple : admin-bar.php ou author-template.php pour n'en nommer que quelques-uns qui semblent importants à pouvoir exécuter et je me demande si placer un fichier htaccess dans ce dossier n'empêchera pas ces fichiers de s'exécuter et ne perturbera pas les fonctionnalités de base de WordPress ? au fait, merci pour les nombreux bons articles sur votre site web

    • Sauf si vous avez un plugin spécifique qui ajoute des fonctionnalités aux fichiers, il ne devrait pas y avoir de problème à empêcher l'exécution de PHP dans les dossiers.

      Admin

      • Merci pour votre réponse. ma configuration est simplement : astra/spectra, malcare et all in one seo, dans ce cas je placerai également .htaccess dans wp-includes. Merci encore pour les nombreux excellents articles

  2. Je vois cela comme un excellent moyen de sécuriser un site web en désactivant l'exécution de PHP dans les dossiers. Selon cet article, seuls deux répertoires sont sécurisés, qu'en est-il des autres ? Sont-ils sécurisés naturellement ou les pirates n'en ont-ils pas besoin lors de leur tentative ?

    • D'autres sections des fichiers de votre site nécessitent normalement un accès plus strict ou contiennent des fichiers PHP nécessaires au bon fonctionnement de votre site.

      Admin

  3. Merci pour ces conseils de sécurité. J'ai créé un fichier htaccess et je vais le télécharger sur FTP. J'ai un site web sur mon propre serveur, donc la question de la sécurité me incombe entièrement. Merci pour la prochaine étape pour rendre mon WordPress un peu plus sécurisé à nouveau.

  4. J'ai également cette alerte sur mon plugin Updraft où les sauvegardes ne se font pas, cela peut-il être dû à htaccess ?

    « Le répertoire de sauvegarde n'a pas pu être créé…

    Le dossier existe, mais votre serveur web n'a pas la permission d'y écrire. Vous devrez consulter votre fournisseur d'hébergement web pour savoir comment définir les permissions pour qu'un plugin WordPress puisse écrire dans le répertoire. (wp-content/updraft)

  5. Pour information : vous avez une faute de frappe dans votre extrait de code pour l'extrait .htaccess.

    L'utilisation de votre extrait de code tel quel (sans le / de fermeture) empêche le chargement des images.

  6. J'ai trouvé des fichiers .php dans le dossier uploads créés par des plugins. Puis-je supposer que cela ne causera pas de problème, ou dois-je analyser chaque plugin individuellement ?

    • Si vous contactez vos plugins, ils pourront vous informer des spécificités de ces fichiers.

      Admin

  7. Excellente écriture ! Vous avez un talent pour l'écriture informative. Votre contenu m'a impressionné au-delà des mots. J'ai beaucoup d'admiration pour votre écriture. Merci pour toutes vos précieuses contributions sur ce sujet.

  8. Les gars, je pense que j'ai foiré mon fichier htaccess, mon site web n'affiche plus du tout d'images

    • Salut Thato,

      Vous pouvez télécharger votre fichier .htaccess sur votre ordinateur comme sauvegarde, puis le supprimer de votre site web. Allez dans la zone d'administration de WordPress Paramètres » Permaliens et cliquez sur le bouton Enregistrer les modifications. Cela devrait régénérer votre fichier .htaccess.

      Admin

  9. Ne faites pas wp-content.
    Faites wp-content/uploads.

    Et ceci :

    order allow,deny
    deny from all

    Peut varier sur les serveurs.

  10. Est-ce que cela affecte les fichiers téléversés pour les mettre en ligne sur des pages web ?
    J'ai constaté qu'après avoir téléversé ce fichier htaccess dans le dossier, de nombreuses images de nombreux articles ne s'affichent pas.

  11. Oui, refuser l'accès aux fichiers php dans le répertoire includes casse le site car l'inclusion respecte les restrictions .htaccess.

    Mais la restriction sur le répertoire d'uploads est très intelligente, et elle devrait être là .PAR DÉFAUT dans le répertoire d'uploads, et il n'y a aucune bonne raison pour qu'elle ne soit pas présente.

  12. ZOMG ! Ne pouvez-vous pas simplement désactiver l'accès en écriture au dossier /wp-includes ?
    Pourquoi se battre avec les conséquences quand on peut prévenir la cause ?

    • Cela n'empêcherait-il pas WordPress de pouvoir mettre à jour les fichiers lors des mises à jour du cœur ?

  13. Vous pouvez également placer ceci dans votre virtualhost Apache, ce qui accomplira la même chose :

    Order allow,deny
    Deny from all

  14. comment implémenter ce code si nous avons une combinaison de minuscules et de majuscules sur l'extension de fichier par exemple on.php sur mon site ça marche mais ça ne marche pas si le fichier est nommé avec.PHp ,.PHP .PhP ou une combinaison de ceux-ci, le script backdoor s'exécute toujours

    Merci

    • Vous pouvez placer ceci dans votre fichier .htaccess

      Order Deny,Allow
      Deny from All

  15. Salut Syed,
    Merci pour cet article très instructif et en fait, il offre une excellente solution pour protéger WordPress des pirates.

  16. Salut !

    J'ai suivi toutes vos instructions dans cet article, mais ça ne marche pas...

    Merci

  17. J'ai créé un fichier .htaccess dans le dossier wp-includes. Le site semblait correct mais mon éditeur WYSIWYG dans les pages d'administration ne fonctionnait pas. J'ai dû supprimer à nouveau le fichier .htaccess. (WP 3.9.1)

  18. J'ai aussi trouvé mon dossier wp-includes plein de fichiers php et je ne vois pas comment utiliser ce fichier .htaccess là-dedans ne casserait rien. Je l'ai utilisé dans le répertoire uploads.

  19. pardonnez mon mauvais anglais…
    i followed all your instructions in this article, but when i go my dashboard to add a newpost, my post section was messed up. … i suspect the .htaccess was the problem.
    when i deleted it, the post was fine.

  20. J'ai ajouté le fichier .htaccess à mon wp-includes et je n'ai eu aucun problème. Merci beaucoup pour les astuces.

  21. J'ai essayé ceci dans mon répertoire /wp-includes/, qui est plein de fichiers php. Bien sûr, je n'ai plus pu accéder au site. Vouliez-vous vraiment inclure le répertoire includes pour une utilisation avec le fichier .htaccess ?

    Vouliez-vous peut-être dire /wp-includes/images ?

    • Non. Nous voulions dire le dossier /wp-includes/. Nous l'avons sur notre dossier wp-includes. Si pour une raison quelconque cela casse votre site, alors supprimez le fichier .htaccess de votre dossier wp-includes.

      Admin

      • Étrange, mon dossier wp-includes contient plus de 90 fichiers php. Et cela casse le site. Je l'ai retiré immédiatement.

        Mais je l'ai mis dans le dossier /wp-content/uploads/ et cela fonctionne très bien là-bas. Merci de votre réponse

        • Placer un fichier htaccess interdisant l'accès aux fichiers php dans un répertoire rempli de fichiers php semble assez étrange. Je suppose que c'est parce que ces fichiers ne sont normalement qu'inclus, pas exécutés directement. Si c'est le cas, ne serait-il pas préférable de simplement interdire l'accès à l'ensemble du répertoire ?

Laisser un commentaire

Merci d'avoir choisi de laisser un commentaire. N'oubliez pas que tous les commentaires sont modérés conformément à notre politique de commentaires, et votre adresse e-mail ne sera PAS publiée. N'utilisez PAS de mots-clés dans le champ nom. Ayons une conversation personnelle et significative.