Spam-experiment: hoe je adres beveiligen?

Mijn spam-experiment nadert stilaan zijn einde. Mijn honeypot-mailbox loopt gezellig verder vol, en binnenkort publiceer ik een laatste grafiek.

Maar voor ik de boel afrond, en depressief zeg dat alles verloren is, en dat spam ons allemaal gaat in kleine stukjes scheuren en opeten, wil ik een constructieve bijdrage leveren.

Hoofdregel 1 in het vermijden van spam is namelijk: zet je adres niet zomaar op webpagina’s. Tjah, allemaal goed en wel, maar soms kúnnen we niet anders, op bv. een bedrijfswebsite, of bv. op een blog, waar de schrijver zich bereikbaar wil maken voor zijn lezers.

Er bestaan een aantal truukjes (hoofdzakelijk JavaScript-truukjes) die een gepubliceerd adres kunnen helpen beveiligen. Vraag is: hoe effectief zijn ze?

In de onderstaande tabel vind je de publicatie van een hele resem gloednieuw aangemaakte adressen. Dit is de enige keer dat, en enige plaats waar ik ze bekend maak. Over een paar weken laat ik weten welke adressen gretig door de spammers zijn ingenomen, en welke niet.

  1. aardbei@titeca.net
  2. ananas [at] titeca [dot] net
  3. appel@titeca.net
  4. framboos@titeca.net
  5. kiwi [at] titeca [dot] net
  6. mango@titeca.net
  7. ten.acetit@reep

Lees verder voor een bespreking van de verschillende methodes.

  1. Plain text: gewoon een adres vermelden zoals het is, maar er geen HTML-link achter steken.
    • Voordeel: Het adres is zeker leesbaar voor de lezers van de webpagina.
    • Nadeel: Het adres is niet rechtstreeks aanklikbaar.
  2. Plain text met vervorming: hier wordt het adres gewoon vermeld, zoals bij methode 1, maar er wordt een beetje intelligentie verwacht van de lezer: die moet weten dat de [at] staat voor de @, de [dot] of [punt] voor een puntje, enzovoort. Intelligentie waarvan gehoopt wordt dat een machine ze niet kan opbrengen, maar u weet dat computers steeds slimmer lijken te worden.
    • Voordeel: Je weet nog steeds dat de gebruiker het adres te zien krijgt zoals je het bedoelt.
    • Nadeel: Je verwacht intelligentie van je lezer! Moedig!
  3. Een doodgewone e-mail-link: nikske beveiliging: gewoon een e-mail-adres waarop je kan klikken. Voila. Meer moet dat niet zijn.
    • Voordeel: Je gebruikt HTML zoals het bedoeld is. Een aanklikbare link. Voila, daar mag geen enkele browser een probleem mee hebben. En geen enkele gebruiker.
    • Nadeel: Ook een spammer mag daar geen enkel probleem mee hebben; veel hapklaarder kan je adres niet zijn.
  4. Een afbeelding: een vrij eenvoudige en veelgebruikte manier om een adres te maskeren: het adres staat niet als tekst in de pagina, maar als een afbeelding. Probeer maar eens, je kan met de cursor het adres niet selecteren als tekst. Op die manier kan de spammer het adres niet zomaar lezen uit een pagina, maar moet er al een gespecialiseerd programma op losgelaten worden, dat tekst kan lezen uit afbeeldingen (OCR, Optical Character Recognition)
    • Voordeel: Het adres wordt onzichtbaar voor gewone spammers, maar is gegarandeerd zichtbaar voor de gewone gebruikers.
    • Nadeel: Het adres is niet aanklikbaar voor de gewone gebruiker, en: dikwijls ziet het er gewoon niet uit. Als webdesigner is het vrij onvoorspelbaar om met zekerheid te zeggen hoe een letter er bij je gebruiker zal uit zien op het scherm. Daarom zie je bij die afbeeldingen visueel bijna altijd het verschil tussen gewone tekst en het prentje. Enkel wie mijn weblog op exact dezelfde manier bekijkt als ik dat doe, ziet het prentje in het exacte lettertype. En dan nog is de positionering niet goed. Neenee, zo’n prentje in een tekst krijgen, da’s hell.
  5. Een afbeelding met een mail-link erachter: zelfde principe als 4, maar deze keer aanklikbaar.
    • Voordeel: aanklikbaar, mijn beste
    • Nadeel: je doet het voordeel van het prentje gewoon volledig teniet: door er een link naar het e-mail-adres achter te leggen, staat het adres toch weer in platte tekst in je code van je webpagina. En dus de spammer spoort het op.
  6. Hexadecimale codes: iedere karakter binnen de e-mail-link is in de code van de pagina vervangen door zijn hexadecimale variant. Wat wil dat zeggen? De letter ‘f’ werd bijvoorbeeld vervangen door &#x66 – de browser mag normaal gezien geen problemen hebben om dit weer om te zetten naar een ‘f’.
    • Voordeel: een vrij normale, aanklikbare link, die een zekere bescherming biedt.
    • Nadeel: niet zo heel moeilijk voor de spammer om te omzeilen. Bovendien is het heel moeilijk om zelf deze omzettingen (van adres naar code) te doen, dus eigenlijk enkel geschikt voor adressen die je heel vaak op webpagina’s wil plaatsen.
  7. Een eenvoudig JavaScript: Tot zover de oplossingen die weinig tot geen problemen opleveren voor de gebruiker – oplossingen die zo goed als gegarandeerd werken. En dan zijn er de technisch wat gevaarlijker oplossingen, zoals bijvoorbeeld de JavaScriptjes. Bij deze een eerste. Geïnteresseerden, zie code:
    <a href=”gotomailprogram” onclick=”X16254Y=’@’; this.href=’mai’+’lt’+’o:kiwi’+X16254Y+’titeca.net'”>
    <script language= “javascript”>apekrol = ‘@’;document.write(‘kiwi’+ apekrol + ‘titeca.net’)</script></a>

    Dit stukje code zorgt ervoor dat het e-mail-adres aanklikbaar is. Achterliggend wordt het juiste adres samengesteld door een JavaScriptje.
    De code zorgt er ook voor dat het e-mail-adres normaal op de pagina getoond wordt, maar dat kon binnen deze weblog niet zonder dat ik technisch ál te grote veranderingen moest aanbrengen.

    • Voordeel: Het adres is aanklikbaar, zonder dat het rechtstreeks in de code van de pagina staat. De spammer moet dus al JavaScript kunnen interpreteren.
    • Nadeel: JavaScript moet opstaan in de browser, en moet correct werken. De meeste browsers hebben wel JavaScript opstaan, maar ik ben ervan overtuigd dat bv. binnen de RSS-feed van dit artikel de link gaat foutlopen.
  8. Een al wat ingewikkelder JavaScript: code:
    <script type=”text/javascript” language=”javascript”>document.write(String.fromCharCode(60, 97, 32, 104, 114, 101, 102, 61, 34, 109, 97, 105, 108, 116, 111, 58, 109, 97, 110, 103, 111, 64, 116, 105, 116, 101, 99, 97, 46, 110, 101, 116, 34, 32, 62, 109, 97, 110, 103, 111, 64, 116, 105, 116, 101, 99, 97, 46, 110, 101, 116, 60, 47, 97, 62))</script><br />
    Dit stukje code gaat het volledige link-stuk uit de HTML-code omzetten naar een JavaScriptje dat elke letter omzet naar een karaktercode, een beetje zoals bij oplossing 6, maar dan met JavaScript.

    • Voordeel: Vrij goeie afscherming, en aanklikbare link
    • Nadeel: Hetzelfde als bij oplossing 7: als JavaScript niet werkt, werkt de link niet.
  9. Via CSS: er bestaan meerdere oplossingen die gebruik maken van Cascading Style Sheets. CSS is de technologie die er voor zorgt dat een webpagina eruit ziet zoals de designer hem ontwerpt; in CSS worden onder andere gebruikte lettertypes e.d. bepaald. Deze weblog is voor het grootste stuk door CSS vormgegeven. En de meeste browsers ondersteunen CSS dus.
    Via CSS zijn een aantal oplossingen te bedenken die ervoor zorgen dat een e-mail-adres gemaskerd wordt. Geen van allen zal echter aanklikbaar zijn als een e-mail-adres, want CSS kan geen code genereren, kan alleen maar iets op het scherm laten verschijnen.
    Het hier gebruikte truukje is simpel, maar briljant. De code:
    <span style=”unicode-bidi:bidi-override; direction: rtl;”>ten.acetit@reep</span>
    Zoals je misschien ziet werd het e-mail-adres omgedraaid. CSS draait het terug om, zodat er voor de gebruiker niets aan de hand is.

    • Voordeel: Dit zal meestal werken, en toch de spammer in de war brengen. Zeer eenvoudige manier van werken. Als het toch mis loopt, is er geen ramp gebeurd: het adres staat er nog, zij het omgekeerd. Niets dat een beetje intelligentie niet kan verhelpen…
    • Nadeel: De link is niet aanklikbaar.

Voila. Tot zover mijn uitgebreid, maar absoluut niet volledige lijstje van enkele mogelijkheden om e-mail-adressen te beschermen. Voor een uitgebreider overzicht verwijs ik door naar deze link die BVLG doorgaf in de commentaren van een vorig artikel.

Nog even een korte nabespreking:
Bij een aantal methodes werd aangehaald dat het nadeel is dat de link niet langer aanklikbaar is. Je kan je natuurlijk afvragen of dat zo’n enorm nadeel is; die functionaliteit is vooral handig als je – zoals ikzelf – een mailprogramma zoals Thunderbird of Outlook op je computer gebruikt, maar gebruikers van Hotmail, GMail, Yahoo en andere webmaildiensten kunnen met zo’n link sowieso niet zoveel aanvangen.

En nu is het afwachten. Verslag over een maand of zo. Laat de spammers nu maar komen. Give it to me, baby! Aha, aha!

(PS: Man man, dit was een van de moeilijker posts om te doen. JavaScript-code e.d. ingeven in WordPress (mijn blog-software) is écht niet evident.)

Update 17 oktober: de resultaten!

16 thoughts on “Spam-experiment: hoe je adres beveiligen?”

  1. De eerste spammekes zijn al binnen! De appel en de framboos zijn de eerste slachtoffers.

    Maar het boelke zal wel een tijdje moeten lopen tegen dat ik betrouwbare resultaten heb…

  2. Ik blijf de spammers moedig trotseren door nog steeds voor optie 3 te gaan. Ik maak het mijn gebruikers graag gemakkelijk. Een goeie spamfilter helpt ook enorm.

  3. Pingback: verboden te lezen
  4. en het niet vermelden van het emailadres in de tekst zelf, maar wel met mailto er achter inhtml? bv appel (html mailto:appel@example.com).
    Weet iemand of dit verschil oplevert?
    (ik ben niet zo naief om te denken dat dit geen spam meer opleverd,maar koester hoop dat dit het aantal toch zou kunnen verminderen?)

    Geëditeerd door Karel – 09/08 – 14.43h

  5. Kir,

    Komt ongeveer op hetzelfde neer als voorbeeld 5: een afbeelding met een mailto-link erachter.

    En tot nu toe heb ik daar al spam op binnen. Dus helaas…

    Ik heb trouwens je reactie lichtjes aangepast. Je had een adres uit bovenstaande tekst vermeld, maar om de resultaten betrouwbaar te houden, heb ik dit aangepast (zodat de eigenlijke adressen maar op één plaats, op één manier voorkomen).

  6. Ik dacht vroeger eens iets gehoord te hebben dat het kon helpen om uw emailadres te laten beginnen met een spatie of een cijfer. Zou dit ook kunnen helpen of is dit al hopeloos achterhaald?
    mvg

  7. Leentje,

    Het zegt me niets, die methode, en eerlijk gezegd zie ik ook niet in waarom het spam zou tegen houden, maar het kan zijn dat ik iets over het hoofd zie.

    Een spatie lukt alvast niet.

  8. ben benieuwd naar je resultaten.
    Mag ik er ook op wijzen dat veel adressen via het aanbieden van allerlei wenskaart sites verkregen worden. Misschien een leuk idee om daar eens te kijken hoeveel spam een aangemeld adres op gaat leveren.

  9. spam deze eens vol aub!
    — edit door Karel: adres verwijderd – het is niet de bedoeling deze blog te gebruiken om af te rekenen met anderen

Reageer!