Index

Eenvoudige captcha voor domme spammers

Op de vorige pagina hadden wij het over het beschermen van fora en gastenboeken door een grafische captcha (Completely Automated Public Turingtest to tell Computers and Humans Apart).
De bescherming kan echter eenvoudiger als je bijvoorbeeld niet in staat bent jpegs te genereren

Waarom spammen?

Het is natuurlijk leuk een link naar je eigen website te krijgen via een vooraanstaande site, maar spammers doen het niet (meer) voor de herkenning, zoals de hackers van een tiental jaren geleden. Spammers doen het nu vooral om backlinks te hebben naar hun eigen websites (waar ze viagra, casino-spelen, ringtones, pyramidespelen en andere rommel aan de bezoekers proberen te verkopen). Het is niet de bedoeling dat de bezoekers zelf op de links klikken (het kan echter geen kwaad), de spammers schijven hun berichten trouwens in om het even welke fora, en verzorgen zelfs niet hun spelling of hun verkoopstekst. Door zoveel mogelijk backlinks te hebben proberen ze hoger in de zoekresultaten van Google te komen. Dit werkt meestal averechts, Google is slim genoeg om geen aandacht te besteden aan dergelijke spamgevallen. Maar voor de forum-eigenaar blijft het een kwelling, dagelijks het forum te moeten opruimen.

Werkwijze van de spammers

Spammers werken met twee robots: één robot dat alle websites opspoort en kijkt of er misschien een forum of gastenboek te zien is. Dit kan redelijk gemakkelijk opgemerkt worden, want fora gebruiken (noodgedwongen) bepaalde HTML-tags, zoals <input type='textarea'> (kode om inputvelden op het scherm te tonen). Zo kan het gebeuren dat een inputveld dat totaal niets te maken heeft met een gastenboek aangevallen wordt door spammers! De url's, namen van de inputvelden en andere parameters van het formulier worden door de spammers verzameld. Deze onschuldige operatie gebeurt meestal op een computer van de spammer zelf.

Een tweede robot krijgt deze gegevens en gaat de gastenboeken spammen. Dit zijn meestal robotten die draaien op zombie-computers (computers waarvan de gebruikers niet weten dat ze geïnfecteerd zijn). Ik krijg iedere dag, nagenoeg om hetzelfde uur spampogingen uit één welbepaalde netblock. De robot gaat ruw te werk en controleert zelfs niet of het spambericht al dan niet opgenomen werd. Zelfs de response-kode wordt niet gecontroleerd (2xx: aanvaard, 4xx: verworpen).

Niet-grafische captcha

Uta! 25! Uru!%!

Tel het aantal uitroeptekens en vul het getal in

 

Een voorbeeld van een domme captcha kan je rechts vinden. Het is zelfs geen plaatje, maar gewone platte tekst: als de spammers de tekst overtikken zijn ze gezien, en dat is eigenlijk de bedoeling! Spammers bekijken de sites niet individueel (bekende sites worden waarschijnlijk wel onderzocht om te zien of het systeem niet gekraakt kan worden). Je site is veel te onbelangrijk, waarschijnlijk heb je zelfs geen pagerank (waardoor spammen eigenlijk een beetje zinloos is). Spammers zijn meestal engelstalig (als tweede taal) dus ze weten totaal niet wat een uitroepteken is. Natuurlijk kan je regelmatig de "formule" wijzigen.

Gastenboek als externe javascript-bestand

Vroeger, toen ik nog geen captcha gebruikte was de kode dat de formulier-opdrachten produceerde gewoon in een extern javascript bestand opgenomen. Alle pagina's van de site van zeepreventorium.org hebben een wiki dat in een extern javascript bestand zit (het bestand bevat eigenlijk niet veel meer dan een paar document.write opdrachten). Nu is er ook een grafische captcha bijgevoegd, maar eigenlijk blijkt deze dubbele bescherming onnodig te zijn: er zijn nog geen robotten die de externe javascript hebben kunnen verwerken: ik krijg enkel spam binnen via het forum, waar de formulier niet in een javascript bestand zit.

Door de gevaarlijke <input type='textarea'> elementen in een extern javascript bestand op te nemen zorg je er voor dat je pagina vrij blijft van spam-magneten. Een extern javascript systeem achteraf implementeren (als je reeds spam binnenkrijgt) is zinloos als je de url van de formulierafhandeling (php of cgi-bin) niet aanpast: de pagina staat in de lijst van spambare sites.

Vergeet niet dat de kans dat je pagina bekeken (en vooral: begrepen) wordt door een spammer nagenoeg nihil is.
De eenvoudigste middelen zijn meestal afdoende.

Index

Individuele landingspage bezoekers: