Als je een publieke website beheert ontkom je er tegenwoordig helaas niet meer aan. Er zijn hackers in deze wereld.
Ook al doe je nog zo je best, vroeg of laat kan ook uw website gehacked of geinfecteerd worden met malware.
Als het dan een keer gebeurd is het wel fijn om dat snel te weten en een overzicht te hebben van wat er precies is veranderd.
Met dit script, in combinatie met de CRON functionaliteit van uw server kunt u uw website perfect controleren.
Het script scant alle bestanden van uw website en vergelijkt die met de vorige scan resultaten.
Alle gevonden verschillen worden via een email aan u (de website beheerder) gerapporteerd.
Om te kunnen functioneren moet uw website de beschikking hebben over zogenaamde cron-jobs. Hiermee kunt u op bepaalde tijden of intervallen een php script uitvoeren.
Omdat dit als een aparte php sessie wordt uitgevoerd hebben uw bezoekers hier geen last van.
Email adres
Het script gebruikt voor de rapportage het email adres die bij de (geavanceerde) instellingen van de website is ingevuld.
Als dit niet het gewenste email adres is kunt u in het script zelf een ander adres opgeven.
Verander:
$emailAddressToAlert = SERVER_EMAIL;
naar het gewenste email adres:
$emailAddressToAlert = "myname@domain.tld";
Directories die niet gescanned moeten worden
Bij sommige webhosters worden automatisch statistieken zoals awstats gegenereerd binnen uw website.
Dit kan dus resulteren in waarschuwingen die u eigenlijk niet wilt krijgen.
U kunt deze directories uitsluiten door in het configuratieblok in het script de naam van de directory op te geven.
De standaard instelling sluit al een paar veel gebruikte direcories uit.
U kunt dit eenvoudig aanpassen door uw eigen directories, gescheiden door een comma, toe te voegen.
De standaard instelling is:
$noScanDirs = "/cache,/awstats,/stats";
Grote websites / veel bestanden
Als u een grote website heeft met bijvoorbeeld veel afbeeldingen kan de scan langdurig en belastend zijn voor uw server.
De standaard scan kijkt naar de datum/tijd van bestanden maar berekend ook een unieke sleutel waardoor de detectie van eventuele wijzigingen met meer zekerheid wordt gedaan.
Het berekeken van deze sleutel kost wel tijd en processor kracht.
Als dit problemen oplevert kunt u er voor kiezen om deze extra check uit te schakelen. Wijzigingen worden dan alleen op de bestands datum/tijd gedetecteerd.
Een hacker kan er voor zorgen dat deze na het aanpassen van bestanden niet veranderd, dus het uitschakelen van deze check is niet aan te raden.
$checkmd5 = true;