Dit is een van de meest effectieve maatregelen die weinig mensen nemen. Hij voorkomt dat een geüpload bestand kan worden uitgevoerd.
Het scenario
Via een lek in een plugin, of via een formulier dat uploads niet goed controleert, plaatst iemand een PHP-bestand in uw uploadmap. Roept hij dat bestand daarna aan in de browser, dan draait die code op uw server met alle rechten die uw website heeft.
Dat is de klassieke route naar een besmette site. Kan dat PHP-bestand niet uitgevoerd worden, dan is de upload waardeloos.
De oplossing
Maak een apart .htaccess-bestand in wp-content/uploads/ met deze inhoud:
<FilesMatch "\.(php|php3|php4|php5|php7|php8|phtml|phar)$">
Require all denied
</FilesMatch>In die map horen alleen afbeeldingen en documenten te staan, dus u breekt hier niets mee.
Ook nuttig elders
Dezelfde regel is zinvol in elke map waar bezoekers of gebruikers bestanden kunnen achterlaten: een map met formulierbijlagen, een cachemap of een tijdelijke map.
Controleer of het werkt
Plaats tijdelijk een bestand test.php in de uploadmap met daarin alleen wat tekst, en vraag het op in uw browser. Krijgt u “Forbidden”, dan is het goed. Verwijder het testbestand daarna.