Spammen en hacken zijn twee compleet verschillende zaken. Alhoewel ze beiden niet gewenst zijn, is het eerste minder kwaadaardig dan het tweede. Het tweede wil je absoluut voorkomen, terwijl je het eerste enkel zo veel mogelijk wil vermijden. In dit artikel leg ik het verschil uit tussen de twee en geef ik je tips en tricks om beide zo veel mogelijk uit te sluiten.
Spammen
Spammen is het gebruik maken van een publiek deel van een website om een niet-gewenst boodschap te mailen (via een contactformulier) of te plaatsen (als reactie op een bericht of in een forum).
Belangrijk is dus dat het om een bereikbaar onderdeel van je website is, waar je effectief wil dat er gebruik van wordt gemaakt. Via een contactformulier wil je namelijk graag reacties krijgen en als je reacties toelaat of een forum hebt geïnstalleerd, wil je dat natuurlijk zo actief mogelijk hebben. Helaas worden dergelijke publieke functies ook gebruikt voor minder aangename doeleinden, zoals advertenties of phishing.
Aangezien het om een functioneel onderdeel van je website gaat, kan je dat dus niet blokkeren. Een individu gaat daar altijd door geraken, hoe goed je het ook probeert af te schermen, want je wil namelijk dat een klant er wél gebruik van kan maken. Een bot daarentegen wil je wel zo veel mogelijk uitsluiten.
De opkomst van Content Management Systemen en andere webbouwmogelijkheden zorgen er voor dat een formulier maken nu makkelijker is dan ooit. Maar als iedereen op dezelfde manier een formulier opmaakt, is het ook des te makkelijker om daar een bot voor te schrijven: werkt het op de ene WordPress- of Joomla-site, dan werkt het bij de anderen ook...
Gelukkig bestaan er verschillende technieken om een bot tegen te houden...
Filter
Het makkelijkste is om te filteren op bepaalde woorden. Dit is in Joomla zelfs een standaard optie. Dit is helaas ook makkelijker te omzeilen en creëert een kat-en-muisspel tussen de spammer en degene die de filter beheert. Je kent het wel. Eerst blokkeer je het woord "spam", dan moet je nadien ook "sp@m" filteren, daarna "spàm", en zo blijf je maar door gaan...
Captcha
De bekendste is ongetwijfeld de "captcha". Een visuele "puzzel" die je moet oplossen. Dat kan gaan van (moeilijk leesbare) letters overtikken, een rekensommetje maken, foto's herkennen tot een schuiver verplaatsen en er zijn ongetwijfeld nog andere methodes. Dat zijn zaken die een mens makkelijk kan uitvoeren, maar waar een bot meer moeite mee heeft. Die moet daar op getraind worden om de vragen te herkennen. Is hij niet getraind (op jouw specifieke captcha)? Dan hou je het spambericht succesvol tegen.
Honeypot
Een visueel minder aanwezige oplossing is een zogenaamde "Honeypot". Daarbij ga je via een onzichtbaar veld (de honingpot) de bot proberen te herkennen. Dat onzichtbaar veld wordt namelijk nooit door een mens ingevuld. Een bot daarentegen gaat elk beschikbaar veld proberen invullen. Heeft dat onzichtbare veld dus een waarde op het moment het bericht wordt verstuurd? Dan ben je zeker dat het een bot is en kan je dat dus tegenhouden. Het grote voordeel is dat je klant de beveiliging dus niet ziet. Het nadeel is dan weer dat een bot er net iets makkelijker op getraind zou kunnen worden om onzichtbare velden te vinden.
Wachttijd
Een bijzonder simpele methode om een bot tegen te houden is een wachttijd in te stellen vooraleer je een bericht kan posten. Bots gaan namelijk heel snel een voorgeprogrammeerde tekst ingeven op je formulier, terwijl een mens wel wat tijd nodig heeft om een bericht te tikken (alhoewel die ook copy-paste kan doen). Door een wachttijd van een vijftal seconden in te stellen, ga je je klanten dus niet echt hinderen. Een bot heeft al lang geprobeerd het formulier te verzenden, maar slaagt daar niet in omdat hij te snel is.
Blacklist
Bots blijven natuurlijk ook verder ontwikkeld worden en alhoewel bovenstaande technieken de kans op spam al sterk beperken, blijft er ook een drastisch middel over: blokkeren op basis van een IP-adres (het unieke adres van een computer/server). Er bestaan namelijk lijsten met IP-adressen die gekend zijn dat ze veel spammen. Je kan dus op basis van die lijsten voorkomen dat specifieke computers een formulier kunnen invullen of hen zelfs de toegang tot je website helemaal blokkeren. Ook hier gaan spammers creatief mee om door snel van IP-adres te veranderen of het zelfs na te maken.
Conclusie
Hoe hou je nu die spammers het best buiten? Idealiter door alle vijf vermelde technieken toe te passen. Dat vraagt echter de nodige kennis en in sommige gevallen ook een (kleine) financiële investering. Bovendien let je best op dat je de poort niet té dicht timmert en je echte klanten wegjaagt omdat het hen niet lukt een formulier in te vullen. De kunst zit hem dus om een evenwicht te zoeken tussen het belemmeren van bots zonder je echte bezoekers te (zwaar) hinderen. Dat vraagt een "try and error". Door minstens één van bovenstaande technieken toe te passen ga je merken dat je (in de meeste gevallen) al een hoop spam kan tegen houden. Werkt het toch niet (sterk genoeg)? Ga dan voor een andere of zelfs een bijkomende techniek. Je moet namelijk maar de pech hebben dat de bot die jou teistert net overweg kan met de specifieke captcha die je hebt geïnstalleerd. Een andere captcha en/of een bijkomende techniek brengt dan hopelijk meer soelaas.
Tips nodig voor specifieke oplossingen?
Joomla
- RSForms en ConvertForms hebben elk (meerdere) ingebouwde captcha(s) en een honeypot
- Aimy's Form Guard plugin geeft je de mogelijkheid om de verstuurknop gedurende een aantal seconden uit te schakelen. Met de betalende versie kan je ook gebruik maken van blacklists.
- Admin Tools richt zich meer op het beveiligen van je website, maar stelt je ook in staat om (automatisch) een eigen blacklist samen te stellen. Hierdoor kan je je specifiek richten op die IP-adressen die jouw website willen spammen.
Hacken
We spreken over hacken als een bot of een individu inbreekt op de backend van je website door middel van een bekend wachtwoord of een veiligheidslek van je software. Van zodra dat lukt, controleert die de inhoud én de database van je website. Dat is het laatste wat je wil dat er gebeurt.
Je kan dit voorkomen via drie wegen: zorg voor een veilig wachtwoord, schakel Multi Factor Authenticitatie in én houd je software up-to-date.
Veilig wachtwoord
Een veilig wachtwoord is een wachtwoord dat uniek is en voldoende lang.
Waarom uniek? Stel dat de hacker ergens anders een lijst met wachtwoorden heeft verworven waar jij tussen staat. Dan kan hij dat wachtwoord niet gebruiken voor je website: het is namelijk een ander. Door overal een ander wachtwoord te gebruiken, zorgt een gelekt wachtwoord niet voor een cascade aan geslaagde nieuwe hackpogingen op andere websites.
Waarom lang? Hoe langer een wachtwoord is, hoe meer combinaties een "brute force"-aanval nodig heeft om je wachtwoord te "gokken". Tegen dan geeft de bot het hopelijk op, of heb je andere maatregelen genomen om de aanval stop te zetten.
Multi Factor Authenticitatie (MFA)
Zelfs als je wachtwoord wordt geraden, dan zorgt MFA er voor dat er nog een extra eenmalige code nodig is vooraleer er toegang is tot je website.
Updates
Elke software die wordt geschreven is blootgesteld aan menselijke fouten. Die fouten kunnen leiden tot een "veiligheidslek", waarbij kwaadwilligen toegang kunnen krijgen tot je website en/of database. Alhoewel iedere programmeur zijn uiterste best doet om dergelijke fouten te vermijden, kan je dat helaas nooit uitsluiten.
Zeker in een open source community (zoals Joomla en WordPress) kunnen deze fouten snel hersteld worden. Er verschijnen dan ook regelmatig updates van de software van je website om dergelijke lekken zo snel mogelijk te dichten. Dan is het uiteraard van belang dat je die update ook installeert, anders blijft je website kwetsbaar voor die fouten.
Niet alleen de software van je website, ook alle uitbreidingen (plugins, thema's, componenten, ...) zijn hier gevoelig voor. Ook zij dienen dus met de regelmaat van de klok bijgewerkt worden, zeker als de schrijver een veiligheidslek meldt.
Ondersteuning nodig?
Het instellen van MFA en het onderhouden van je website vraagt de nodige technische kennis en tijd. Heb je één van de twee niet? Dan help ik je graag om je website beter te beveiligen. Kan ik 100% garantie bieden? Helaas niet, maar met de nodige aanpassingen is de kans op een hack veel kleiner én dankzij de voorziene backups in een onderhoudspakket kan ik ook snel de originele website terugplaatsen zodat je bereikbaar blijft voor je klanten.