sunnudagur, nóvember 06, 2005

Anti-spam birting á netföngum

Spam, eða óumbeðinn fjöldatölvupóstur, er orðinn fyrir internetið það sama og flatlús og klamedía er fyrir kynlíf. Það er æðislegt að stunda netið en því fylgja óværur ef maður er ekki varkár. Þá þarf maður bara að taka til sinna ráða og setja smá öryggi á oddinn og forrita sig framhjá þessu.

Ég hef verið að velta því fyrir mér í nokkurn tíma hvernig hægt er að birta netfang á opinni vefsíðu án þess að vera að drukkna í spami daginn eftir. Ég fékk nasasjón af því hvernig væri hægt að leysa þetta í lokaverkefni mínu í Háskólanum í Reykjavík núna í vor en komst aldrei í að setjast niður og skrifa þetta.

Sem er skrítið, það tók mig svona hálftíma að skrifa þetta í VBScript og Javascript.

Trikkið er að skrifa allt afturábak. Spam “glæpamenn” nota leitarvélar til að skríða um netið og safna netföngum. Leitarvélarnar lesa allann texta í vefsíðum og þegar þær koma að netföngum eru þau skráð. Þá er bara um eitt að ræða til að plata þessar leitarvélar og það er að skrifa út netföngin þannig að leitarvélarnar annað hvort skilja það ekki eða skrá það vitlaust. Og ég ákvað að fara þá leið að skrifa allt afturábak. S.s. sigurjon hja sigurjon . net yrði ten.nojrugis@nojrugis.

Forritunin skiptist í tvennt. Annars vegar verður að skrifa strenginn afturábak í vefsíðuna og krækjan verður líka að innihalda netfangið á afturábak.

Netfangið er skrifað rétt í grunn, s.s. ekki aftur á bak. En þegar það er skrifað út í birtingu er því snúið við í VBScript með StrReverse fallinu. CSS sér um að birta strenginn “rétt” og svo er Javascript fall í krækjunni sem sér til þess netfangið virki sem góð og gild mailto krækja þegar smellt er á hana.

Kóðinn fyrir Javascriptið er:

function reverseString(input) {
var output = '';
for (i = 0; i <= input.length; i++) {
output = input.charAt (i) + output
}
location.replace("mailto:"+output);
}

CSS klasinn sem birtir öfugan streng rétt er svona:
.reverse { unicode-bidi:bidi-override; direction: rtl; }
Það var hann Bjössi hjá Öðru Veldi sem benti mér á þetta og á hann heiðurinn að þessu.

Krækjan er svo skrifuð:
<a href="javascript:reverseString(' ten.nojrugis@nojrugis ');" class="reverse"> ten.nojrugis@nojrugis</a>

Það má sjá þennan kóða í action neðst á hinni vefsíðunni minni, í fætinum.

2 ummæli:

Nafnlaus sagði...

Djöfuls gargandi snilld og svona líka einfalt þegar upp er staðið.

Nafnlaus sagði...

Djöfuls gargandi snilld og svona líka einfalt þegar upp er staðið.