Oversigt
Mit skema
TeX og MetaPost
Mit studie
Instruktor
Matematik
Citater
Kaffe
Mig selv
Links
Legeplads
Pictures
Revy
Tutor
Lanciers
Brok
Forsiden

IMF
AU
Ren kode
Valid XHTML 1.0!
Valid CSS!
Email

Legeplads

Her vil jeg teste nogle html og xhtml-ting. Der er ikke på denne side nogen garanti for, at siden er korrekt xhtml.

E-mail og det der er værre

Her vil jeg teste forskellige ting med JavaScripts og spambot'ers effektivitet i opsnusning af emailadresser. Hvis du ikke har JavaScript aktiveret i din browser kan noget af det nedenfor godt se lidt besynderligt ud.

Beskrivelse Adresse Oprettet
Den første adresse skjuler jeg ikke i koden; den kan alle og enhver se: burner+ejskjul@imf.au.dk 7-7-2003
Den anden adresse skjuler jeg vha. lidt JavaScript: 7-7-2003
Den tredje adresse er skjult vha. kode i en ekstern fil. 7-7-2003

Idéen med at bruge forskellige burner+ adresser ovenfor er, at jeg så vha. procmail let kon sortere, om der kommer noget mail (som derved sandsynligvis er spam) til nogen af adresserne. Jeg vil prøve at få noget automatisk opdateret statistik op og stå.

Hvordan virker det?

Nuvel, flere har udvist interesse for disse JavaSripts, så lad mig her kort forklare hvad der foregår og hvorfor. Det er vist efterhånden klart for enhver der benytter sig af email, at man ofte modtager uønsket post, såkaldt spam. Denne spam sendes af folk som typisk vil lokke en masse penge ud af en. Men hvordan ved disse spammere dog hvem man er? Det gør de heller ikke. De sender deres mails til millioner og atter millioner adresser i håb om at bare et par stykker bider på krogen. Disse millioner af adresser har de fx fundet ved hjælp af "høstrobotter"; det er små programmer som surfer rundt på nettet og opsamler alt hvad de kan som er på formen "noget@nogetmere", altså stort set alt som indeholder et snabel-a. Der er nemlig en rigtig god chance for, at der bag en sådan tekststreng faktisk gemmer sig en rigtig emailadresse, og dermed en rigtig person.

Dette leder frem til pointen. Med ovenstående in mente er man naturligvis interesseret i, at ens emailadresse ikke er at finde på www. Men på den anden side vil man jo gerne (fx på en hjemmeside som denne) give folk mulighed for at sende en email; dette indebærer at offentliggøre sin emailadresse.

Løsningen er at sørge for, at mennesker kan se, læse og bruge emailadressen, men at automatiserede robotter ikke kan. Tricket består i at udnytte, at før du begyndte at læse dette, har din browser hentet siden ned fra IMFs webserver og fortolket indholdet. Fx har jeg i virkeligheden bare skrevet <b>fortolket</b>, men din browser genkender dette og viser dig derfor ordet "fortolket" fremhævet med fed skrift.

På samme måde kan man med en smule mere indviklede midler sørge for, at ens emailadresse ikke står direkte at læse noget sted i den html-kode, som høstrobotterne indsamler. Hvis du ser i kildekoden [vælg View Source, Se kilde eller lignende i din browser] til denne side vil du opdage, at der øverst står noget i retning af

<script type="text/javascript">
<!--
function email_link(email) {
return ("<a href=mailto:"+email+">"+email+"</a>")
}
function make_email(user, domain) {
return (user + "@" + domain)
}
//-->
</script>

Det der sker er at jeg definerer to små JavaScript-funktioner, kaldet henholdsvis email_link og make_email. Hvis jeg så et sted i koden skriver

<script type="text/javascript">
<!--
document.writeln(email_link(make_email("georggearløs", "andeby.dk")))
//-->
</script>

kaldes funktionen make_email med de to argumenter georggearløs og andeby.dk. Som det fremgår af ovenstående returnerer denne funktion så strengen og denne streng bliver så givet som argument til funktionen email_link. Denne funktion er ansvarlig for at tage en emailadresse og gøre den til et klikbart link; endelig er document.writeln ansvarlig for at den resulterende kode rent faktisk bliver fortolket af browseren. Alt i alt ender man med .

Prøv på google at søge efter . Du får højst sandsynligt ingen hits. Hvis du derimod søger efter andersand@andeby.dk bliver du ledt frem til denne side. Det skyldes at jeg ikke har gjort noget for at skjule stakkels Anders' adresse for de sultne robotter.

For at tage hensyn til folk som bruger en (meget) gammel browser, eller som af andre grunde ikke har JavaScript aktiveret, kan og bør man efterfølge hver <script> </script>-blok med en tilsvarende <noscript>-blok, som giver ca. det samme udseende. Fx ville Georg nok sikre brugervenligheden ved at skrive

<noscript>
<code>georggearløs (a) andeby.dk</code>
</noscript>

hvilket, hvis brugeren ikke har JavaScript, ville resultere i det ligeledes robotfjendtlige georggearløs (a) andeby.dk.