Comment interdire l'exécution de scripts PHP dans les répertoires de WordPress ?
Comment faire pour interdire l'exécution de scripts PHP dans les répertoires de WordPress, et plus particulièrement dans le répertoire wp-content/uploads
?
Les répertoires wp-content/uploads
et wp-includes
de WordPress peuvent contenir des fichiers PHP utilisables pour prendre la main sur votre site Web et l'exploiter.
Pour interdire l'exécution de scripts PHP dans les répertoires de WordPress, vous pouvez modifier le fichier httpd.conf
sur Apache et y ajouter la règle suivante ; pensez à adapter le chemin d'accès vers les répertoire à sécuriser :
<Directory "/var/www/vhosts/exemple.com/wp-content/uploads">
<FilesMatch \.php$>
Require all denied
</FilesMatch>
</Directory>
Voici la règle pour le répertoire wp-includes
:
<IfModule mod_rewrite.c>
<Directory "/var/www/vhosts/exemple.com/wp-includes">
<FilesMatch \.php$>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !^/var/www/vhosts/exemple\.com/wp\-includes/js/tinymce/wp\-tinymce\.php$ [NC]
RewriteRule .* - [NC,F,L]
</FilesMatch>
</Directory>
</IfModule>
Si vous utilisez Nginx comme proxy inversé, il faut également ajouter une règle au fichier nginx.conf
:
location ~* "^(?:/)wp-content/uploads/.*\.php" { deny all; }
Voici la règle à ajouter pour le répertoire wp-includes
:
location ~* "^(?:/)wp-includes/(?!js/tinymce/wp\-tinymce\.php$).*\.php" { deny all; }