Het wp-config.php bestand is het belangrijkste bestand van uw volledige WordPress- en WooCommerce-installatie. Het bevat niet alleen de database-inloggegevens (host, gebruikersnaam en wachtwoord), linie ook de unieke cryptografische authenticatiesleutels en de configuratie van geavanceerde functies. Als de bestandsrechten (file permissions) op de server te ruim zijn ingesteld, kunnen andere gebruikers op hetzelfde hostingplatform of aanvallers die een minder kritiek lek misbruiken, dit bestand inzien en uw complete webshop overnemen.
Hoe bestandsmachtigingen werken op Linux-servers
Webservers maken meestal gebruik van Linux, waarbij elk bestand en elke map unieke rechten heeft voor drie groepen: de Eigenaar (Owner), de Groep (Group) en Iedereen (Public/Others). Deze rechten worden weergegeven in driecijferige numerieke codes (bijv. 644 of 755).
-
6betekent lezen en schrijven. -
4betekent alleen lezen. -
5betekent lezen and uitvoeren.
Een standaard WordPress-bestand heeft meestal machtiging 644. Dit betekent dat de eigenaar (de webserver) het bestand kan lezen en schrijven, en dat de rest van de wereld het bestand alleen kan lezen. Voor afbeeldingen of stijlbladen is dit prima, maar voor wp-config.php is dit onveilig. Op shared hosting-omgevingen kan een onveilig geconfigureerde server ertoe leiden dat de ene websitebeheerder de 644-bestanden van een andere website op dezelfde server kan inzien.
Het risico van blootstelling
Als een aanvaller toegang krijgt tot uw wp-config.php bestand (bijvoorbeeld via een Local File Inclusion kwetsbaarheid in een slecht gecodeerd thema), kan hij:
-
Direct inloggen op uw database via tools zoals phpMyAdmin.
-
De tabel
wp_usersaanpassen om zichzelf administratorrechten te geven. -
De geheime salts stelen om actieve sessies van klanten te kapen en creditcardgegevens te onderscheppen.
Hoe u wp-config.php optimaal beveiligd
1. Pas de bestandsrechten aan (Chmod)
De absolute best practice is om de machtigingen van wp-config.php zo strikt mogelijk in te stellen. Het bestand hoeft alleen gelezen te worden door de webserver zelf.
Stel de machtigingen in op 440 of 400. Dit betekent dat de eigenaar (en eventueel de groep) het bestand alleen kan lezen, en dat schrijven of publieke toegang volledig is geblokkeerd.
U kunt dit aanpassen via de bestandsbeheerder van uw hostingpaneel of via SSH met het volgende commando:
chmod 400 wp-config.php
2. Verplaats wp-config.php (indien ondersteund)
WordPress heeft een unieke ingebouwde eigenschap: als er geen wp-config.php in de hoofdmap van de website staat, zoekt de core automatisch in de map boven de hoofdmap. Als uw website zich bevindt in /var/www/html/public_html/, kunt u het bestand veilig verplaatsen naar /var/www/html/. Hierdoor is het bestand fysiek onbereikbaar via een directe URL in de browser.
3. Blokkeer toegang via de serverconfiguratie
Voeg een extra vangnet toe in uw .htaccess bestand om te zorgen dat de server elk direct verzoek naar het configuratiebestand resoluut weigert:
<Files wp-config.php>
order allow,deny
deny from all
</Files>
