← Alle checks
BeveiligingTypische ernst: Hoog

Scanner voor blootgestelde logs

Zoekt naar logbestanden die via HTTP toegankelijk zijn en paden, fouttraces en interne data lekken.

Wat het checkt

Deze scanner zoekt naar logbestanden die via HTTP toegankelijk zijn op je site, zoals fout- of serveractiviteitslogs. Hij detecteert wanneer die bestanden downloadbaar zijn gelaten in plaats van beschermd.

Waarom het belangrijk is

Logs bevatten vaak interne systeempaden, gedetailleerde foutmeldingen en soms gebruikersgegevens of verzoekparameters. Dat alles geeft een aanvaller een kaart van hoe je site vanbinnen werkt en waar hij kan proberen binnen te komen.

Hoe je het oplost

Verplaats logbestanden uit de publieke map of blokkeer de toegang ertoe via de webserver. Controleer ook dat je applicatie geen logs schrijft in een map die via HTTP wordt geserveerd, en beperk hoeveel foutdetail in productie wordt getoond.

Hoe deze controle werkt

Scanaris vraagt zeven paden op waar de meest gangbare applicaties hun logs schrijven als niemand ze iets anders vertelt: /debug.log, /error.log, /error_log, /laravel.log, /storage/logs/laravel.log, /npm-debug.log en /wp-content/debug.log. Als een ervan antwoordt met een tekstbestand dat op een log lijkt, en niet met de generieke pagina van je site, opent hij een bevinding met gemiddelde ernst en het pad. Logs bevatten zelden de hele database, vandaar niet kritiek; maar weinig bestanden zeggen zoveel over de interne werking van je site.

Waarom dit belangrijk is

Een foutlog is het dagboek van alles wat misging: interne serverpaden, bestands- en functienamen, exacte bibliotheekversies, mislukte databasequery's met hun parameters, IP-adressen van gebruikers, soms e-mails of tokens die in een verzoek opdoken. Daarmee weet wie een kwetsbaarheid zoekt precies waar te kijken en welke versie aan te vallen. En het log groeit: elke dag van blootstelling vertelt meer.

Waarom het gebeurt

WordPress met WP_DEBUG_LOG ingeschakeld schrijft naar wp-content/debug.log, en dat is een openbare map; dit is het meest voorkomende geval. Laravel bewaart zijn logs in storage/logs, dat niet bereikbaar zou moeten zijn, maar dat wel is wanneer de server naar de projectroot wijst in plaats van naar public/. Apache op shared hosting laat error_log naast de sitebestanden staan. En npm-debug.log verschijnt wanneer een installatie op de server is mislukt en niemand heeft opgeruimd.

Hoe je het oplost

  • WordPress: in productie define('WP_DEBUG', false); in wp-config.php. Heb je het log tijdelijk nodig, verplaats het dan uit de openbare map met define('WP_DEBUG_LOG', '/prive/pad/debug.log'); en verwijder het huidige bestand.
  • Laravel: de webserver moet naar de map public/ van het project wijzen, nooit naar de root. Zo is storage/ niet meer bereikbaar. En APP_DEBUG=false.
  • Node en andere: schrijf logs buiten de geserveerde map en stuur ze zo mogelijk naar een logdienst. Verwijder npm-debug.log en vergelijkbare bestanden van de server.
  • Blokkeer de extensie aan serverkant als tweede barrière. In nginx: location ~* \.log$ { deny all; }. In Apache: <FilesMatch "\.log$"> Require all denied </FilesMatch>.
  • Beperk wat je in productie logt: niveau error in plaats van debug, zonder volledige request-bodies of tokens te dumpen.

Controleer of het opgelost is

for p in debug.log error.log error_log laravel.log storage/logs/laravel.log npm-debug.log wp-content/debug.log; do
  printf "%-28s " "$p"; curl -s -o /dev/null -w "%{http_code}\n" "https://jouwdomein.nl/$p"
done

Verwacht: overal 404 of 403. Is je site een single-page app die 200 antwoordt met haar HTML, dan is dat niet het log; open het om te bevestigen.

Veelgestelde vragen

Mijn log bevat niets gevoeligs, alleen PHP-waarschuwingen.

Die waarschuwingen bevatten de volledige serverpaden en de pluginversies, precies wat een aanvaller gebruikt om te kiezen welke exploit hij probeert. En vandaag staat er niets gevoeligs in; morgen, met een nieuwe fout, kan dat anders zijn.

Moet ik logs helemaal uitschakelen?

Nee. Ze mogen alleen niet openbaar zijn. Log wat je wilt in een map die de webserver niet serveert, of in een externe dienst.

Geldt dit voor mij op Vercel of Netlify?

Bijna nooit: daar worden logs niet naar openbare bestanden geschreven, maar bekeken in het dashboard. De bevinding duikt vooral op bij zelf gehoste servers, WordPress en shared hosting.

Check het op je site

Scan je site gratis en zie of deze en 44 andere checks slagen, met een fixprompt voor elk probleem.

Mijn site gratis scannen

Gerelateerde checks