Anyro

By Adam Nybäck

E-postadress på webbsidor utan att få spam

De flesta företag vill kunna bli kontaktade och det är en självklarhet att man ska hitta e-postadresser till företag på deras webbplats. Det här drar spammarna nytta av genom att köra program, så kallade spindlar, som automatiskt letar igenom sidor på nätet efter dessa adresser.

För att förhindra detta kan man använda olika metoder för att dölja adressen för spindlarna, men samtidigt vill man inte krångla till det för besökarna, som förväntar sig att se adressen i klartext och kunna klicka på den.

I en typisk mail-länk visas adressen i klartext två gånger:

1
2
3
<a href="mailto:peter.griffin@happy-go-lucky.us">
  peter.griffin@happy-go-lucky.us
</a>

Steg 1 är byta ut den synliga texten mot en bild. Ta en skärmdump av adressen så som den skulle sett ut som text och klistra in och behandla i ett ritprogram. Spara i gif-format, gärna med bakgrunden transparent. Sen är det bara att byta ut texten mot en img-tag:

1
2
3
<a href="mailto:peter.griffin@happy-go-lucky.us">
  <img src="/images/peter_griffin_email.gif" />
</a>

Steg 2 är att byta ut mailto-texten mot ett ‘#’ och generera adressen med lite JavaScript.

1
2
3
4
5
6
7
8
9
10
11
12
<script type="text/javascript"><!--
function newhref(obj)
{
  var mid = 'iffin@happy-';
  var addr = 'to:peter.gr' + mid + 'go-lucky.us';
  if (obj.setAttribute) obj.setAttribute('href', 'mail' + addr);
}
//-->
</script>
<a href="#" onmouseover="newhref(this)" onfocus="newhref(this)">
  <img src="/images/peter_griffin_email.gif" />
</a>

JavaScript-koden delar upp adressen på ett sätt som spindlarna (förhoppningsvis) inte klarar av att tolka. Om webbläsaren stödjer funktionen setAttribute() används den till att ändra länkadressen när användaren pekar på bilden eller fokuserar den med hjälp av tangentbordet. Tanken är att det ska krävas mänsklig interaktion för att komma åt adressen. Folk med gamla webbläsare och de som har JavaScript inaktiverat får nöja sig med bilden.

Comments