Laatst hoorde ik een reclamespotje voor een automerk. De slogan luidde ongeveer zo: ook onze standaard-uitvoering is voorzien van uitgebreide opties. Dat deed me denken aan mijn favoriete content management systeem Joomla. Een zeer krachtig en uitgebreid cms. Maar opties die je niet nodig hebt, kun je beter uitschakelen om verrassingen te voorkomen.
Zo kregen we laatst de klacht van een klant dat hun eigen Joomla-website spam zou versturen. Het bleek dat spammers misbruik maakten van een op zich volkomen bonafide voorziening in Joomla zelf. Hoe kon dit gebeuren?
Contactformulier
Joomla bevat een voorziening om contactpersonen te beheren. Hiermee kun je bijvoorbeeld een lijst van medewerkers van je organisatie op de site plaatsen. Optioneel kun je bij een contactpersoon een contactformulier tonen, daarmee kan een bezoeker een e-mailbericht naar deze contactpersoon sturen. Desgewenst kan de bezoeker zelf een kopie van het bericht ontvangen.
Deze voorziening is echter ook bekend bij spammers. Die laten een robot het contactformulier invullen en geven als 'afzender' een e-mailadres op waar ze de spam naar willen sturen. Ook vinken ze aan dat er een kopie naar deze 'afzender' moet worden gestuurd. De kopie fungeert dus als spam en jouw site is (helaas) de afzender.
Als je gebruik wilt maken van een contactformulier is het zaak om een goede anti-spam controle (captcha) aan te zetten. Dat kan heel makkelijk – maar je moet het wel even doen. Als je geen gebruik wil maken van een contactformulier, dan kun je de optie ‘Toon contactformulier’ beter uitzetten. Overigens, als je helemaal geen contactpersonen invult dan is het onmogelijk om zo’n contactformulier op te roepen. Maar dat laatste bleek geen waterdichte maatregel.
Testgegevens
Want hoe zat het bij deze klant? Zij hadden geen contactpersonen ingevuld. Tijdens de bouw van de site, een aantal jaren geleden, hadden we er daardoor niet aan gedacht om het contactformulier uit te schakelen. Ook was er geen sprake van een anti-spam controle – immers: geen contactpersonen, geen formulieren. Maar in de loop van de tijd had iemand in de organisatie bij wijze van test één contactpersoon aangemaakt met daarin het algemene mailadres van de organisatie.
Door de aanwezigheid van deze testgegevens was een contactformulier in het leven geroepen. De klant was verbaasd hierover, want er was geen menu-item aangemaakt waar de contactgegevens en het formulier te zien waren. Echter, een cms als Joomla maakt 'onder water' automatisch een url aan voor elk item in het systeem. In het geval van een contactpersoon ziet die url er ongeveer zo uit:
voorbeeld.nl/index.php?option=com_contact&view=contact&id=1
Spammers weten dit en laten hun robots hiernaar zoeken.
Door alleen de aanwezigheid van deze testgegevens was een contactformulier in het leven geroepen.
Opties uitschakelen, tenzij...
De Webcompagnons hanteren bij de oplevering van een website een checklist. Die lijst wordt voortdurend aangepast en uitgebreid, aan de hand van nieuwe inzichten en 'good practice'. Het uitschakelen van de contactformulier-optie staat daar intussen ook op. Tenzij men bewust ervoor kiest om het formulier te gebruiken - en dan voegen we een anti-spam controle toe.
Het onheil gebeurde dus door een bestaande optie uit te buiten die per ongeluk was aangezet zonder bijbehorende veiligheidsmaatregelen. De spammers hebben geen wachtwoord gekraakt of slechte software geïnstalleerd. Betekent dit nu dat Joomla niet veilig zou zijn? Zeker niet. Maar het betekent wel dat het van belang is om te weten hoe die verschillende opties het beste kunnen worden ingesteld in jouw situatie. De Webcompagnons kunnen je daarbij helpen.
Overigens gaf deze klant na dit voorval aan dat zij voortaan beter zouden letten op het opruimen van testgegevens. Ook dat is een voorbeeld van good practice.