E-mail adres verbergen
Als je de bezoekers van je website de gelegenheid wilt geven om op je website te reageren, is e-mail een geschikt middel. Het best gebruik je daarvoor een mailformulier. Maar je kunt ook de e-mail cliënt op de PC van je bezoeker daarvoor gebruiken. Dat doe je met behulp van mailto.
Op internet is er een pest die 'spam' heet. Het zijn die ongevraagde e-mail berichten met aanbiedingen voor hypotheken, medicijnen voor het opvoeren van het mannelijk geslachtsdeel, enzovoort. Verzenders van spam, in de wandelgangen vaak aangeduid als 'spammers' zoeken websites af naar e-mail adressen om hun berichten naar toe te sturen. Met name mailto:-referenties zijn hier gevoelig voor, omdat ze een geldig e-mail adres bevatten en gemakkelijk te vinden zijn. Het gebruik van mailto: wordt daarom niet aanbevolen.
Als je tóch met mailto: aan de slag wilt kun je het de e-mail harvesters (zo heet de software die internet afstruint op zoek naar e-mail adressen) wel zo moeilijk mogelijk maken. Een eenvoudige truc is door de A-tag die de mailto: bevat moeilijk leesbaar te maken voor andere software dan een browser. Daarvoor kun je bijvoorbeeld software gebruiken die overal op internet gratis te downloaden is. Één van de vele van dergelijke programma's is Email Link Encoder.
Een andere methode is het "verstoppen" van een e-mail adres in een JavaScript-function. Bij aanroep
van die function wordt de <A>-tag in de browswer gemaakt en op het scherm getoond.
Op deze bladzijde wordt beschreven hoe dat in zijn werk gaat. Je vindt hier ook een eenvoudige code generator
die de JavaScript-function voor je schrijft.
De JavaScript- en HTML-code van de codegenerator kun je downloaden om zelf aan door te ontwikkelen.
Op het gebruik van mailto: wordt op deze bladzijde niet ingegaan. Zie daarvoor het item "Mailto: gebruiken".
- Noodzakelijk is dat op de PC van de gebruiker een standaard e-mail cliënt (zoals Outlook, Thunderbird, etc.)
staat ingesteld. Dat is op de meeste PC's wel het geval. Anders krijgt je bezoeker gewoon een foutmelding...
- De idee achter deze aanpak is als volgt:
- Op de server moet de tag met mailto: en het het e-mail adres "onleesbaar" zijn.
- In de browser (op de lokale PC dus) moet het e-mail adres gewoon kunnen worden gebruikt.
- Dit betekent dat de HTML-code door de browser van de lokale PC moet worden gegenereerd. JavaScript is daar heel geschikt voor.
- Om het voor harvesters nog wat moeilijker te maken wordt de tag met daarin het e-mail adres gecodeerd
naar de browser gestuurd en pas lokaal gedecodeerd nadat de pagina is geladen.
- Voor het schrijven van de JavaScript-function is een code generator beschikbaar.
- De werking is -globaal- als volgt:
- De volledige tag met daarin het e-mail adres, de beschrijving die op het scherm komt en een eventuele query-string vormen een reeks karakters van eindige lengte.
- De karakters worden elk omgezet in de overeenkomende numerieke karakter referentie.
Zie hiervoor ook het item "Speciale karakters in HTML". - De numerieke referenties worden in een array gezet. Bij het vullen van de array wordt op een willekeurige plaats begonnen. Als het einde van de array is bereikt worden de resterende karakters aan het begin van de array geplaatst.
- Bij aanroep van de functie wordt een getal meegegeven. Dit is de positie van het eerste karakter van
de tag in de array. Hiermee kan de function alle karakters in de goede volgorde weer uitschrijven. Deze
reeks karakters vormt een geldige HTML-tag die door de browser kan worden verwerkt.
- In plaats van de <a href="mailto:.......>-tag wordt een <span>-tag geplaatst. Deze heeft een id. Met behulp van visibility:hidden wordt deze verborgen gehouden.
- Nadat de pagina is geladen wordt de function gestart die de code van de <a href="mailto:.......>-tag
genereert en in de innerHTML van de <span>-tag zet.
Tenslotte wordt deze met visibility:visible zichtbaar gemaakt.
- Om de JavaScript code te maken is een codegenerator noodzakelijk. Uiteraard is er hier een beschikbaar, druk op onderstaande knop.
- De code generator maakt een onload="..."-attribuut om de JavaScript function te starten. Dat moet je aan de BODY-tag toevoegen.
- De code-generator maakt behalve de JavaScripts ook de <span>-tag aan.
- Als op "Genereer code" wordt gedrukt wordt eerst gekeken of de verplichte velden allemaal zijn ingevuld. Zo nodig wordt een foutmelding gegeven.
- Het veld "E-mail adres Aan" moet een "goed gevormd" e-mail adres bevatten. Dat geldt ook bij CC en BCC als die worden gebruikt. Zo nodig wordt een foutmelding gegeven.
- De invoervelden in de code-generator kunnen worden beëindigd met de 'Enter'-toets.
- De hiervoor gebruikte technieken worden beschreven in de items: "Geldigheid testen van formulier-velden", "Geldigheid testen van een e-mail adres" en "'Enter'-toets uitschakelen in een formulier-veld".
Gebruik:
- De code staat gedeeltelijk in de <HEAD> en gedeeltelijk in de <BODY>.
- Maak voor elke <a href="mailto:.......>-tag een JavaScript aan, elk met een unieke id.
De code wordt gemaakt door de code-generator. Deze ziet er als volgt uit:
(Zet dit in de <HEAD>)
(Zet dit in de <BODY>, op de plaats waar je het nodig hebt)<script>
// HideMailTag: Codegenerator door Ben Boukes (c) 2005
(JavaScript opdrachten)
// Einde gegenereerde code
</script>
Neem tenslotte het onload-attribuut op in de <BODY-tag:<span id="mailbericht" style="visbility:hidden">mailadres</span>
onload="..."
Downloaden:
Druk op de knop:
File: voorb162.zip, 7725 bytes.
Opmerking:
De hier beschreven methode maakt het nieuwsgierige meelezers behoorlijk moeilijk om bepaalde zaken te
achterhalen. Echt kwaadwillende lieden zullen echter zeker in staat om de karakterreferenties "terug
te vertalen" naar leesbare tekst om zo je 'geheimpjes' te vinden. Het is dus niet 100% waterdicht. Ervaring
heeft geleerd dat het een behoorlijke bescherming is tegen de activiteiten van harvesters. De creativiteit die
nodig is om dit te kraken is nl. moeilijk in te bouwen in een programma.