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.

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.

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 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 :
- Le guide ultime de la sécurité WordPress (étape par étape)
- Comment effectuer un audit de sécurité WordPress (Liste de contrôle complète)
- Comment scanner votre site WordPress à la recherche de code potentiellement malveillant
- Meilleurs scanners de sécurité WordPress pour détecter les logiciels malveillants et les piratages
- Comment trouver et supprimer l'injection de liens de spam dans WordPress
- Comment ajouter l'authentification à deux facteurs dans WordPress (méthode gratuite)
- Comment ajouter des questions de sécurité à l'écran de connexion WordPress
- Quoi, pourquoi et comment des clés de sécurité 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.
tom
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
Support WPBeginner
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
tom
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
Mrteesurez
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 ?
Support WPBeginner
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
Jiří Vaněk
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.
Unarine Leo Netshifhefhe
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)
Support WPBeginner
Cela semble être un problème de permissions de fichier/dossier, vous devriez contacter votre fournisseur d'hébergement qui pourra vous aider. Vous pouvez également consulter notre guide ci-dessous :
https://www.wpbeginner.com/beginners-guide/how-to-fix-file-and-folder-permissions-error-in-wordpress/
Admin
Brian Prom
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.
Support WPBeginner
Thank you for pointing that out, our code should be fixed
Admin
Vitor Gonçlaves
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 ?
Support WPBeginner
Si vous contactez vos plugins, ils pourront vous informer des spécificités de ces fichiers.
Admin
nirbo
Merci pour l'information
Support WPBeginner
You’re welcome
Admin
cliff denney
merci beaucoup
Support WPBeginner
You’re welcome
Admin
Suman Samanta
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.
Support WPBeginner
Thank you, glad you enjoy our writing
Admin
Thato
Les gars, je pense que j'ai foiré mon fichier htaccess, mon site web n'affiche plus du tout d'images
Support WPBeginner
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
Shawn Rebelo
Ne faites pas wp-content.
Faites wp-content/uploads.
Et ceci :
order allow,deny
deny from all
Peut varier sur les serveurs.
Hardik
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.
Chuck Cochems
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.
Stan
Quelle est la méthode pour les serveurs IIS ?
Merci,
KOnnie
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 ?
Jonathan Hodgson
Cela n'empêcherait-il pas WordPress de pouvoir mettre à jour les fichiers lors des mises à jour du cœur ?
Jeff Wigal
Vous pouvez également placer ceci dans votre virtualhost Apache, ce qui accomplira la même chose :
Order allow,deny
Deny from all
anton
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
Timothée Moulin
Vous pouvez placer ceci dans votre fichier .htaccess
Order Deny,Allow
Deny from All
Shams
Salut Syed,
Merci pour cet article très instructif et en fait, il offre une excellente solution pour protéger WordPress des pirates.
Vladimir
Salut !
J'ai suivi toutes vos instructions dans cet article, mais ça ne marche pas...
Merci
Aurélien Debord
Un article très utile avec des astuces aussi bonnes et rapides.
Merci
Ramon
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)
Wes
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.
Personnel éditorial
Cela le casse parfois (selon le plugin que vous utilisez), mais pas tout le temps.
Admin
Rouge
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.
Personnel éditorial
Dans quel répertoire avez-vous téléchargé le fichier .htaccess qui a causé ce problème ?
Admin
Chris
J'ai ajouté le fichier .htaccess à mon wp-includes et je n'ai eu aucun problème. Merci beaucoup pour les astuces.
Brad
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 ?
Personnel éditorial
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
Brad
É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
Alfred
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 ?