Nyeste it-job

Skjul din e-mail adresse for spam-robotter

af Joachim Cohn Jacobsen, HTML.dk
Sidst opdateret 5. september 2003

Når du oplyser din e-mail adresse på et website gør du samtidig adressen tilgængelig for spam-robotter (spambots). Spambots crawler internettet ligesom søgemaskinernes robotter. Spambots leder ikke efter dokumenter men derimod e-mail adresser der kan bruges til at sende spam-mail til. I denne artikel ser vi på, hvordan du kan minimere risikoen for at spambots finder din e-mail adresse.

Buy Viagra Without a Prescription, Hypnotize Women eller Get a Bigger Penis Now!! Du er sikkert stødt på e-mails i din indbakke der har haft emner i stil med disse, og det er mildest talt irriterende at modtage daglige e-mails som antyder at man har en lille tissemand eller for små bryster.

Hvis du har oplyst din e-mail adresse på et website, eller andre steder, er adressen sikkert blevet fundet af en spambot, og gemt i en database, som er blevet solgt frem og tilbage mellem spammere på nettet. I så fald vil du sikkert modtage spammail på adressen fra nu af og til verdens ende (eller til du nedlægger adressen).

Denne artikel giver dig et par tips til hvordan du fremover kan offentliggøre din e-mail adresse og samtidig sørge for at spambotterne ikke finder den. Artiklen er ikke udtømmende, men anviser en række af de mest anvendte løsninger.

Den sikreste løsning

Lad være med overhovedet at oplyse din e-mail adresse.

Denne løsning er selvsagt skudsikker, men indebærer jo desværre også, at dine brugere ikke kan komme i kontakt med dig. Løsningen er derfor ikke særligt attraktiv.

Kontaktform løsningen

En ganske udbredt løsning er, at give besøgende på dit website mulighed for at kontakte dig via en kontaktformular, hvis indhold efterfølgende sendes via et serverside-script (CGI, ASP, PHP eller lignende). Ved kontaktformularer er e-mail adressen ikke synlig for brugeren, men kan, afhængig af hvilket script der håndterer formens indhold, stadig være tilgængeligt for spambots.

Hvis du f.eks. bruger et standard formmail-script som stilles til rådighed af de fleste udbydere, vil du skulle angive din e-mail adresse i et af input-elementerne. Se f.eks. Cybercitys formmail-løsning, hvor man skal angive en e-mail adresse som modtager af de beskeder der afsendes fra formularen. Spambots kan læse denne adresse, og den er dermed sårbar overfor at blive listet i et af nettets mange spamdatabaser.

Dette problem kan dog delvist afhjælpes af nogle af de løsninger vi kommer ind på senere i denne artikel, men visse af løsningerne afhænger af hvilke teknologier man har adgang til at bruge hos sin udbyder.

De nemme løsninger

Du kan vælge ikke at bruge et mailto-link til din e-mail adresse, og evt. samtidigt præsentere adressen som et grafisk billede eller lignende.

1. Uden link:

joachim@html.dk

Denne løsning skjuler ikke din e-mail adresse særligt effektivt for robotterne. De kan godt nok ikke finde den ved at kigge efter links med "mailto:", men de mere intelligente robotter vil kunne genkende syntaksen som en e-mail på grund af @'et. Problemet med løsningen er desuden, at brugeren skal kopiere e-mail adressen til sin mail-klient hvis vedkommende vil skrive en mail til dig.

2. Uden link og som billede:

Billede med Joachims e-mail adresse

Med denne løsning kan du sikre dig fuldstændigt mod, at robotterne fanger din adresse. Det er kun seende der kan aflure hvad billedet indeholder. Til gengæld kan brugeren nu ikke engang kopiere e-mail adressen, men må skrive den ned og manuelt indtaste den i sit e-mail program.

3. "Fjern NOSPAM fra min adresse"

joachimNOSPAM@html.dk

Denne løsning er også ganske sikker, men det er til gengæld også ganske sikkert, at du går glip af en masse e-mails fra brugere der ikke fanger, at de skal fjerne "NOSPAM", eller hvad du nu har valgt at indsætte, fra e-mail adressen. Desuden er visse spambots programmeret til at omgå dette trick ved netop at fjerne de mest indlysende ord fra e-mail adresser - f.eks. "NOSPAM", "REMOVE" og "DELETE".

Hvis du vælger at indsætte ord eller sætninger i din e-mail adresse bør du gøre det før @'et for ikke at genere eventuelle ejere af det domæne som fremkommer når du ændrer på adressen. joachimNOSPAM@html.dk er altså iorden mens joachim@NOSPAMhtml.dk ikke bør anvendes da der kan være ejere af domænet nospamhtml.dk som bliver generet.

Kendetegnende for alle de tre nemme løsninger ovenfor er, at de kræver ekstra handling fra brugeren. Dette vil helt sikkert udfordre uerfarne webbrugere i en sådan grad, at kommunikationen mislykkes. Min mor ville helt sikkert stå af overfor disse tre løsninger, og undlade at skrive til mig ;-)

Encoding af e-mail adresser

En ganske udbredt metode til at forsøge at skjule e-mail adresser er at konvertere e-mail adressen til de korresponderende nummeriske koder. Hvis det lyder som sort tale, så tag et kig på vores oversigt over specialtegn i ISO 8859-1. Som du kan se, har alle tegn en korresponderende nummerisk værdi. Lille a er 97, stort B er 66 osv. Disse kan skrives til skærmen ved hjælp af følgende syntaks:

a og B

Ovenstående kode vil se sådan ud i browseren:

a og B

På samme måde kan man i HTML-koden skrive:

<a href="mailto:&#101;&#110;&#99;&#111;&#100;&#101;&#100;&#109;&#97;&#105;&#108;&#64;&#104;&#116;&#109;&#108;&#46;&#100;&#107;">
Send mig en e-mail
</a>

Resultatet vil så være:

Send mig en e-mail

Bemærk at eksemplet undlader at bruge e-mail adressen som link-tekst. Der er jo ingen grund til at sprede adressen mere end nødvendigt.

Har vi så nu opfundet den dybe tallerken? Nej, desværre. Drew McLellans Encoded email address harvester demonstrerer, at en robot sagtens kan finde adressen alligevel. Prøv at angive adressen på denne artikel på McLellans side, og se hvad den finder :-(

Det betyder imidlertid ikke, at vi ikke er på rette spor. Vi skal blot rafinere løsningen yderligere.

En Javascriptløsning

Du kan finde et hav af forslag til hvordan du løser spambot-problemet med Javascript, hvis du søger en smule rundt på nettet.

Problemet ved en lang række af disse forslag er, at de ikke tager højde for de brugere der har slået Javascript fra, og som derfor afskæres for at kontakte dig.

Her kigger vi imidlertid på et eksempel der også adresserer den problemstilling.

<a href="kontakt.htm" title="Send mig en e-mail"
    onmouseover="this.href='mai' + 'lto:' + 'joachim' + '@' + 'html.dk'"
    onfocus    ="this.href='mai' + 'lto:' + 'joachim' + '@' + 'html.dk'">
    Joachim Cohn Jacobsen
</a>

Resultatet er:

Joachim Cohn Jacobsen

Det smarte ved denne løsning er, at hverken "mailto:" eller e-mail adressen ligger som tekststrenge i HTML-koden. De fem markerede delelementer stykkes først sammen til et gyldigt e-mail link når brugeren fører musen over linket, eller bruger tabulatortasten (derfor er også onfocus med).

Hvis brugeren har slået Javascript fra, sendes vedkommende blot til kontakt.htm, og på denne side kan du forklare hvorfor du har valgt at skjule din e-mail adresse, samt vejlede i hvordan du kan kontaktes. Se f.eks. dette forslag.

Den paranoide løsning

Ingen løsning er som nævnt helt sikker, men hvis vi nu kombinerer encoding-løsningen og Javascriptløsningen kan vi irritere spamrobotterne i en sådan grad, at det kun i sjældne tilfælde vil lykkes dem, at opsuge din e-mail adresse.

I encoding-løsningen brugte vi e-mail adressens korresponderende nummeriske værdier, men der er andre muligheder. I ovenstående Javascript-eksempel kan vi også tillade os at bruge hexadecimale-værdier, og stadig få et brugbart output til skærmen.

Først et helt almindeligt mailto-link for at illustrere syntaksen:

<a href="mailto:%6A%6F%61%63%68%69%6D%40%68%74%6D%6C%2E%64%6B">
Send mig en e-mail
</a>

Send mig en e-mail

Lad være med at bekymre dig om de hexadecimale værdier lige nu. Vi vender tilbage til dem om lidt.

Hvis vi mixer de to typer encoding og tilsætter et par almindelige karakterer i javascriptet, bliver spamrobotterne sendt på et overarbejde, de har meget svært ved at magte.

Min e-mail adresse i et almindeligt mailto-link kan f.eks. komme til at se sådan ud:

<a href="mailto:jo%61&#99;him&#64;&#104;tm%6C&#46;d&#107;">Joachim Cohn Jacobsen</a>

Hvis vi indsætter adressen i ovenstående Javascript får vi dette volapyk:

<a href="kontakt.htm" title="Joachim Cohn Jacobsen"
    onmouseover="this.href='mai' + 'lto:' + 'jo%61&#99;him' + '&#64;' + '&#104;tm%6C&#46;d&#107;'"
    onfocus="this.href='mai' + 'lto:' + 'jo%61&#99;him' + '&#64;' + '&#104;tm%6C&#46;d&#107;'">
    Joachim Cohn Jacobsen
</a>

Og resultatet er:

Joachim Cohn Jacobsen

Med denne løsning skulle du være ret sikker på, at spam-robotterne ikke finder din e-mail adresse. Men nu sidder du sikkert og river dig i håret over, hvordan du nemt kan få lavet et link der bruger både Javascript og flere former for encoding.

Det har HTML.dk selvfølgelig taget højde for, så vi har lavet et lille værktøj du kan bruge: HTML.dk's Lav et spam-beskyttet e-mail link

Der følger ingen garantier med, men det hjælper dig ganske godt på vej i kampen mod spam.

Fik vi det hele med?

Vi fik det meste med, og vi fik kigget på en række af de mest anvendte metoder til at undgå, at spambots suger din adresse fra et website.

Den eneste skudsikre metode er "Den sikreste løsning", men den kan ærligt talt ikke bruges til noget.

Du vil sikkert undre sig over, at jeg anvender min egen e-mail adresse i eksemplerne i denne artikel, uden at skjule den for spambots.

Som jeg nævnte i starten af denne artikel, så nytter det ikke meget hvis en e-mail adresse allerede er i omløb blandt spam-fjolser, og det er min adresse desværre, så jeg må ty til spamfiltre på min mail-server og i mit e-mail program :-(

Det skal dog ikke afholde dig fra at tage kampen op, og du kan starte kampen ved at skjule din e-mail adresse fremover.

God kamp! Tis på en spammer!

Relateret materiale på HTML.dk

Nyhedsbrev
Tilmeld dig HTML.dk's nyhedsbrev


Er du jobsøgende?

 Ja
 Nej
Se det foreløbige resultat når du har stemt!


Se tidligere afstemninger

 Community
Brugernavn

Adgangskode

Husk

 *  Bliv medlem her
 *  Glemt password?


Om HTML.dk | Oplysninger om ophavsret | Politik om persondata | Annoncer på HTML.dk | RSS

Valid XHTML 1.1! Valid CSS! Powered by Scannet