Tijdens het ontwikkelen van een WooCommerce-webshop of bij het oplossen van een hardnekkig probleem met een betaalprovider, is het inschakelen van foutopsporing (debugging) essentieel. WordPress biedt hiervoor de ingebouwde constante WP_DEBUG. Wanneer deze logbestanden echter onbeheerd op de live server blijven staan, veranderen ze in een goudmijn voor hackers. Informatie-lekkage (Information Disclosure) via openbare logbestanden stelt aanvallers in staat om de interne keuken van uw website te bekijken en gerichte aanvallen voor te bereiden.
Hoe het debug.log bestand een risico wordt
Wanneer u WP_DEBUG en WP_DEBUG_LOG inschakelt in het wp-config.php bestand, schrijft WordPress alle PHP-waarschuwingen, fouten en notificaties naar een bestand genaamd debug.log, gelegen in de map wp-content/.
Als de server niet correct is geconfigureerd om de toegang tot .log bestanden te blokkeren, kan iedereen dit bestand simpelweg downloaden via https://uwwebshop.nl/wp-content/debug.log.
Dit bestand kan de volgende gevoelige informatie bevatten:
-
Volledige bestandspaden: Foutmeldingen tonen de exacte mappenstructuur van de server (bijv.
/home/user/public_html/...), wat handig is voor Directory Traversal-aanvallen. -
Databasefouten: Als een query mislukt, kan de exacte SQL-structuur inclusief tabelnamen zichtbaar zijn.
-
API-reacties: Veel WooCommerce-plug-ins loggen onbewust complete API-communicatie met derden, inclusief tijdelijke tokens of klantinformatie.
WooCommerce specifieke logbestanden
WooCommerce heeft een eigen logsysteem dat fouten van extensies (zoals verzend- en betaalmodules) opslaat in de map wp-content/uploads/wc-logs/. Hoewel WooCommerce deze map probeert te beschermen met een .htaccess bestand, kan deze bescherming falen op Nginx-servers als de webshopeigenaar de serverregels niet handmatig heeft aangepast.
Correcte configuratie voor live websites
Ontwikkelaars en site-beheerders moeten ervoor zorgen dat fouten op een live website nooit op het scherm worden getoond en dat logbestanden buiten het publiek toegankelijke webgedeelte worden geplaatst of strikt worden afgeschermd.
De aanbevolen instelling voor een productieomgeving in wp-config.php is:
// Schakel debug-modus in voor interne registratie, maar verberg uitvoer voor bezoekers
define('WP_DEBUG', true);
define('WP_DEBUG_DISPLAY', false); // Toon nooit fouten op het scherm
define('WP_DEBUG_LOG', true); // Schrijf fouten naar debug.log
Belangrijke aanvulling: Om te voorkomen dat het debug.log bestand via de browser toegankelijk is, kunt u het bestand een aangepast pad geven buiten de openbare map, of de toegang blokkeren via de serverconfiguratie.
Blokkeren via .htaccess (Apache):
<FilesMatch "\.log$">
Order deny,allow
Deny from all
</FilesMatch>
Advies voor site-beheerders
-
Logboeken opschonen: Wis logbestanden zodra een technisch probleem is opgelost. Schakel debugging op live omgevingen bij voorkeur volledig uit (
define('WP_DEBUG', false);). -
Controleer de WooCommerce status: Ga in uw dashboard naar WooCommerce > Status > Logboeken om de interne logs te beheren en te controleren of er gevoelige data in staat.
