Webspam experiment
Tijd voor een experiment. Zoals bekend schuimen spamrobots onafgebroken het internet af op zoek naar e-mailadressen, met de bedoeling deze vervolgens af en toe gerichte informatie te bezorgen over diploma’s, penisverlengingen, viagra, hypotheken of porno.
Raar maar waar, sommige mensen zijn hierin minder geïnteresseerd. Als je dan toch een e-mailadres op het net moet publiceren, kan je trucjes gebruiken om deze spambots te misleiden. Ze hebben allemaal hun voor- en nadelen, waarover hieronder meer, maar mijn vraag is: welke zijn het efficiëntst? Daarom presenteer ik u, beste spammer, zes adresjes waarop ik met plezier uw elektronische briefwisseling ontvang. Maar let op, het ene is al wat meer gecamoufleerd dan het andere. Hier gaan we:
- spamjunkie1-1cb70837@webcraft.be
- spamjunkie2-273c8cfd@webcraft.be
- spamjunkie3-fb732acd at webcraft punt be
- spamjunkie4-beb76ce6
webcraft.be
Het experiment
Het doel van het experiment is simpel: na verloop van tijd wil ik evalueren hoeveel spamberichten op elk adres zijn toegekomen. De methode die de minste junk mail oplevert, is de efficiëntste. Uiteraard zijn er ook andere factoren waarmee rekening moet gehouden worden, zoals hieronder zal blijken als ik de zes methodes overloop.
1. Standaard
De beproefde <a xhref="mailto:" mce_href="mailto:">-methode.
Voordeel
De standaardmethode, heel eenvoudig voor zowel ontwikkelaar als gebuiker.
Nadeel
De hemel voor spammers (zoals allicht zal blijken).
2. Zonder link
Maakt het een verschil als we niet linken, en dus het adres niet ‘klikbaar’ maken?
Voordeel
Zo mogelijk nog eenvoudiger voor de designer.
Nadeel
De gebruiker moet dit adres kopiëren en vervolgens plakken (of overtypen) in zijn e-mailbericht. En nog steeds een makkie voor spambots, volgens mij.
3. De at/punt-methode
Een eenvoudige vorm van spamprotectie die dikwijls opduikt is het vervangen van @ door de letters at, (at), [at], (a) of iets dergelijks, en het puntje door het letterlijke punt, dot, [.], enz. Spambots beginnen namelijk te likkebaarden bij het zien van de typische emailkarakters.
Voordeel
Nog steeds redelijk eenvoudig voor de designer en een serieuze barriëre voor de spambot.
Nadeel
Minder doorgewinterde internauten zullen mogelijk niet beseffen dat ze de at en de punt zelf terug moeten omzetten in @ en . Met een snuifje javascript zou dit weliswaar opgelost kunnen worden.
4. De serverside methode
De redirect-mailto gecombineerd met de Graphic @ maakt gebruik van een serverside taal naar keuze (bv. PHP, ASP, Perl, Coldfusion, …). De gebruiker ziet een emailadres, waarbij het textkarakter @ vervangen is door een afbeelding van een @. De achterliggende link is geen mailto, maar een link naar een scriptpagina, die als het ware ‘doorverbindt’ naar een e-mailvenster. Als de gebruiker klikt, opent dus zoals verwacht een e-mailvenster. Een voorbeeld in PHP:
<?php
header("Location:mailto:".$_GET['u']."@".$_GET['d']);
echo "<a xhref=\"".$_SERVER['HTTP_REFERER']."\">Terug</a>";
?>
Voordeel
Een serieuze barriëre voor de spambot.
Nadeel
Moeilijker voor de ontwikkelaar, en de server moet een serverside scripttaal ondersteunen. Bovendien zal de gebruiker nadat hij op de link heeft geklikt op een nieuwe (lege) webpagina terechtkomen. Er is geen echt ‘propere’ manier om automatisch terug te keren naar de oorspronkelijke pagina.
5. Eenvoudige javascript
Het e-mailadres wordt door een eenvoudig stukje javascript ingevoegd in de pagina. In de javascript-code wordt het e-mailadres opgesplitst in verschillende stukjes, die bij het laden van de pagina terug samengebracht worden.
<script type="text/javascript">
var string1="mai";
var string2="lto:";
var string3="spamjunkie5-d0532193";
var string4="@";
var string5="webcraft";
var string6=".";
var string7="be";
var new_anchor = document.createElement("a");
var parent_element = document.getElementById("m5");
parent_element.appendChild(new_anchor);
var textnode = document.createTextNode(string3+string4+string5+string6+string7);
new_anchor.appendChild(textnode);
var href_attribute = document.createAttribute("href");
href_attribute.value = string1+string2+string3+string4+string5+string6+string7;
new_anchor.setAttributeNode(href_attribute);
</script>
Voordeel
De gebruiker zal in de meeste gevallen geen verschil merken met de standaard methode. De spambot vindt in de broncode nergens letterlijk het e-mailadres.
Nadeel
Problemen als de browser geen javascript ondersteunt of als de gebruiker dit heeft uitgeschakeld. Vrij omslachtig voor de designer.
6. Geavanceerde javascript
De gebruikte E-mail protector maakt gebruik van encryptie- en decryptiesleutels. Nergens in de broncode vind je een verwijzig naar het e-mailadres. Je moet het in te voegen e-mailadres eerst versleutelen via de bovenstaande link. De zware werk wordt uitgevoerd door een extern javascript-bestand.
<script type="text/javascript">
if(!addresses) var addresses = new Array();
addresses.push('17533 11499 15120 957 447 14869 459 57 2249 13037 2288 957 15120 16305 6110 16025 15266 447 13387 17200 3460 11943 2269 11943 8613 286 957 9920 2269 16682 1991 13387 11943 5984 8772 957 9228 459 9671 11943 13387');
</script>
Voordeel
De gebruiker zal in de meeste gevallen geen verschil merken met de standaard methode. De spambot vindt in de broncode nergens een verwijzing naar het e-mailadres.
Nadeel
Problemen als de browser geen javascript ondersteunt of als de gebruiker dit heeft uitgeschakeld. Vrij omslachtig voor de designer, en een vrij groot script. In de broncode is het e-mailadres ook voor de designer niet leesbaar, en als het adres moet veranderen moet je het adres opnieuw versleutelen.
Laat maar komen
Nu is het wachten op spam. Hoe lang het precies zal duren voor de eerste beginnen binnen te druppelen weet ik niet, ook al omdat dit een redelijk nieuwe site is. Ik houd jullie op de hoogte!
Nog dit
- De emailadressen bestaan allemaal gedeeltelijk uit een willekeurige string, dit om de ‘raadbaarheid’ volledig uit te sluiten.
- Gelieve zelf geen berichten naar deze adressen te sturen, deze zijn strictly for spamming!
- Deze methodes zijn uiteraard combineerbaar om bepaalde nadelen weg te filteren.
Pronostiekjes?
Welke methode zal de minste spam opleveren? Is dit dan ook de beste methode? Andere suggesties? Laat maar weten!
Update: blijkbaar was ik niet de eerste die hierrond wat wilde experimenteren. Webpalet deed het een half jaar geleden al, en heeft ook al resultaten, zo kom ik vandaag te weten via Pietel. En ja, opvallende overeenkomsten berusten op louter toeval…








Ben benieuwd naar de resultaten :)
Alhoewel ik er nu zelf geen tijd meer in ga steken om e-mailadressen te verhullen voor spambots. Spam krijg ik toch wel, vandaar dat ik de eerste optie gewoon gebruik op mijn eigen websites. En lokaal wordt alles er toch uitgefilterd dus ik zit er niet echt mee dat ik zoveel Spam krijg. Alleen wel jammer dat het even tijd kost om het allemaal binnen te halen elke ochtend.
Het lijkt me dat de “bob at mail punt be” variant het minder goed zal doen dan de “bob at mail dot com” versie – ik vraag me af hoe taalkundig de spambots zijn.
Maar ook hier, ik heb geen last meer van ongewenste mail. Maar dat maakt het niet minder ongewenst…
Ik herinner me een vrijwel identiek experiment op een andere Belgische blog (weet niet meer welke) enkele maanden geleden. Voor zover ik me kan herinneren zijn daar later (nog) geen resultaten van bekend gemaakt, dus ik ben benieuwd naar jouw ervaring.
Spam is iets, waar we denk ik niet meer onder uit komen. De hoeveelheid spam beperken vind ik nog altijd interessant. Ik ben benieuwd welke methode het meest effectief is, zonder dat de gebruikersvriendelijkheid in het gedrang komt.
4, 5 en 6 zullen voor weinig-geen spam zorgen. Voor 3 verwacht ik ook weinig problemen, owv de reden die Vincent aanhaalde.
Mijn geld staat op 4.
Voor onze klanten gebruiken wij soms volgende techniek, die vrij eenvoudig is en volgens ons ook vrij efficient:
- vermeld het mail adres normaal
- neem een screenshot van de opgemaakte pagina
- snij het mail adres uit (Photoshop, ..) en bewaar dit op de server
- vervang het getypte mail adres door de screenshot
Valt voor een gebruiker bijna niet op, enkel opletten wanneer de CSS van de website aangepast wordt.
Kris, kan de gebruiker dit adres dan aanklikken? Of moet hij het overtypen?
In het eerste geval is het systeem volgens mij niet waterdicht, in het andere geval creëer je een drempel voor de gebruiker. Zie ik dat goed?
“Gelieve zelf geen berichten naar deze adressen te sturen, deze zijn strictly for spamming!”
Humor.
Yup, ik heb inderdaad op mijn blog hetzelfde experiment al eens gedaan, maar ben ten zeerste benieuwd naar jouw resultaten, een goeie manier om te toetsen of ik een beetje wetenschappelijk verantwoorde zever heb neergepend…
@Michiel: Het adres is aanklikbaar, wat inderdaad niet waterdicht is maar wellicht een deel van de spammers zal misleiden omdat het adres enkel nog in de sourcecode terug te vinden is. Een echt efficiënte methode bestaat volgens mij niet. Uiteindelijk werken veel spammers op basis van adressen die automatisch gecreëerd worden zonder dat deze op websites verzameld worden. Mails worden verzonden naar honderden gebruikers op een domein en de kans dat er een actief adres tussen zit is voor spammers blijkbaar groot genoeg.
@Kris: als je een link achter de afbeelding steekt, helpt dat niets (heeft mijn experiment uitgewezen). Een afbeelding zonder link helpt wel, maar het aanmaken van de afbeelding is omslachtig, en bovendien moet de gebruiker dan het adres overtypen.
Ik geef de voorkeur aan de JavaScript-methode (iets a la nr. 6), zoals ook gegenereerd kan worden op bv. mijn webpagina.
Op het moment probeer ik Bad Behavior uit, die naar eigen zeggen spambots blokkeert. Op een site heb ik een email-link gezet, nu maar afwachten of Bad Behavior doet wat ‘ie moet doen.