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

Trouver un fichier PHP étrange dans votre dossier de téléchargements WordPress peut être alarmant. Nous connaissons bien ce sentiment car nous avons aidé des centaines d'utilisateurs qui ont découvert le même problème.

Cela indique souvent une faille de sécurité que beaucoup de gens négligent. Les pirates peuvent abuser des répertoires inscriptibles pour télécharger des scripts malveillants qui leur donnent un accès de porte dérobée à votre site Web.

La bonne nouvelle est qu'il existe un moyen simple de bloquer l'une de leurs méthodes d'attaque préférées. En désactivant l'exécution de PHP dans des dossiers spécifiques, vous rendez votre site une cible beaucoup plus difficile.

Nous vous montrerons exactement comment faire cela étape par étape. Passons en revue comment ajouter cette couche de sécurité importante à votre site WordPress.

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 abusée si elle tombe entre de mauvaises mains, comme des pirates qui peuvent l'utiliser pour télécharger des fichiers d'accès de porte dérobée 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 abordons cela dans la section FAQ ci-dessous.)

Ce fichier de configuration puissant 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 conviviale pour le référencement, 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 de porte dérobée, vous devez créer un fichier .htaccess et le télécharger dans les répertoires /wp-includes et /wp-content/uploads de votre site. La protection du dossier /wp-content/uploads est particulièrement importante, car c'est l'endroit le plus courant où les pirates essaient de placer des scripts malveillants.

Créez simplement un nouveau fichier sur votre ordinateur à l'aide d'un éditeur de texte comme le Bloc-notes (sous Windows) ou TextEdit (sous Mac). Ensuite, enregistrez le fichier vide avec le nom .htaccess

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éverser ce fichier dans les dossiers /wp-includes et /wp-content/uploads sur votre serveur d'hébergement WordPress.

Vous pouvez le téléverser 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.

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

L'utilisation de cette astuce .htaccess vous aide à renforcer la sécurité de votre WordPress, mais elle ne réparera pas un site WordPress qui a déjà été 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 la présence de portes dérobées potentielles sur votre site Web, vous devez activer Sucuri sur votre site Web.

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 portes dérobées 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 du 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. Les répertoires wp-content/uploads et wp-includes ne sont pas censés contenir de fichiers PHP exécutés directement. Vos thèmes et plugins conservent leurs fichiers nécessaires dans des dossiers séparés où l'exécution PHP est toujours autorisée.

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

Bien que ce soit 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 ?

Le fichier .htaccess ne fonctionne que sur les serveurs Web Apache. Si votre fournisseur d'hébergement utilise Nginx, vous devrez ajouter une règle différente au fichier de configuration de votre serveur pour obtenir le même résultat. Nous vous recommandons de contacter l'équipe de support de votre hébergeur pour obtenir de l'aide concernant le code correct pour leur plateforme.

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

Dans de très rares cas, vous pourriez voir une 'erreur interne du serveur 500' après avoir téléchargé le fichier. Cela signifie généralement que votre hébergeur utilise une ancienne version du logiciel serveur Apache.

Si cela se produit, ouvrez simplement 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.

Guides d'experts 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 cet article vous a plu, abonnez-vous à notre chaîne YouTube pour des tutoriels vidéo WordPress. Vous pouvez également nous retrouver sur Twitter et Facebook.

Avis : Notre contenu est financé par nos lecteurs. Cela signifie que si vous cliquez sur certains de nos liens, nous pouvons percevoir une commission. Voir 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. Veuillez NE PAS utiliser de mots-clés dans le champ du nom. Ayons une conversation personnelle et significative.