Itse olen usein miettinyt pääni puhki, miten voisin laittaa sähköpostiosoitteita nettisivuille ilman että ne joutuisivat heti roskapostirobottien syyniin. Kaikenlaista olen laittanut pisteiden ja @-merkkien tilalle, ja varmasti se onkin ihan toimiva ratkaisu (vai onko?). Mutta tein tässä viime viikolla sivustoa eräälle yhdistykselle ja ohimennen tein tällaisen skriptin, joka muuntaa saadun tekstin kuvaksi. En viitsi laittaa tätä tuonne koodivinkkeihin, koska tämä on niin peruskauraa eikä tässä ole juurikaan mitään uutta verrattuna jo siellä oleviin koodinpätkiin.
Mutta siis... te fiksummat ihmiset voitte varmaan kertoa, että onko tämä toimiva systeemi? Käykö robotit itse html-tauhkaa läpi, vai rajoittuuko haku pelkästään 'näytettävälle sivulle'?
txt2png.php:
<?php // skripti muuntaa saadun tekstin png-kuvaksi // tekijä: minä // käyttö: <img src='txt2png.php?text=gurgo@osoite.fi' alt='' /> header("Content-type: image/png"); // kuvaheaderi $teksti = $_GET['text']; // parametrina saatava teksti $leveys = 8*strlen($teksti); // kuvan leveys (8px/merkki) $korkeus = 18; // kuvan korkeus $kuva = imagecreate($leveys,$korkeus); // luodaan kuva /* määritellään käytettävät värit */ $valkoinen = imagecolorallocate($kuva,255,255,255); $sininen = imagecolorallocate($kuva,13,111,161); imagestring($kuva,3,3,2,$teksti,$sininen); // teksti: kuva,fonttikoko,x,y,teksti,väri imagecolortransparent($kuva,$valkoinen); // valkoinen läpinäkyväksi imagepng($kuva); // tehdään kuva imagedestroy($kuva); // poistetaan kuva muistista ?>
Koodaa se sähköpostiosote strtr() funktiolla, tällöin ne eivät voi saada sitä mitenkään purettua :)
Hahaa, samaa päävaivaa se taitaa tuottaa myös surffaajapoloiselle :) Mut joo, tietystihän maililinkkitekstiksi voi laittaa vaikka että "lehmä", mut itse en pruukaa käyttää noita <a href="mailto:"> - juttuja, vaan pelkkää raakaa tekstiä.
kyllä robotti tosta ton osotteen löytää, kun se on tuolla muuttujassa, eli ?text=maili@fi.org
lainaus:
Hahaa, samaa päävaivaa se taitaa tuottaa myös surffaajapoloiselle :) Mut joo, tietystihän maililinkkitekstiksi voi laittaa vaikka että "lehmä", mut itse en pruukaa käyttää noita <a href="mailto:"> - juttuja, vaan pelkkää raakaa tekstiä.
No ei tuota enää jos teet jonkun scriptin joka tuottaa nuo osoitteet, eihän niitä jokapäivä kirjoitella uusiksi :)
Tai sitten toinen tapa: käytä h4x0r kieltä :)
lainaus:
Koodaa se sähköpostiosote strtr() funktiolla, tällöin ne eivät voi saada sitä mitenkään purettua :)
Osaako joku kertoa mitä tuo funktio tarkalleen tekee. Etin sitä manuaalista, mutta en tullut oikein hullua hurskaammaksi.
lainaus:
kyllä robotti tosta ton osotteen löytää, kun se on tuolla muuttujassa, eli ?text=maili@fi.org
Mutta jos ei ole kuin yksi osoite niin voihan sen laittaa tuonne koodin sekaan. Skriptiä ei tosin sen jälkeen voi sellasenaan muuhun käyttää.
TM: OK, tyhmä olin ku en heti tajunnu... :)
Eli ne spammirobotit siis käy sen koko tauhkan läpi, eikä vaan sitä mitä tavallinen tallaaja näkee? Se kyllä tuntuu järkevältä, ja siinä tapauksessa tuo on täysin hyödytön.
Eiku joo! Nythän mä vasta ymmärsin mitä T.M. haki tuolla strstr()-funkkarilla. Eihän se oo homma eikä mikään tehdä noista osoitteista sekamelskaa tuolla itse sivulla ja sit skripti tuottaa ne taas järkeväksi. Jeejee, ootta te pojat fiksuja.
lainaus:
Mutta jos ei ole kuin yksi osoite niin voihan sen laittaa tuonne koodin sekaan. Skriptiä ei tosin sen jälkeen voi sellasenaan muuhun käyttää.
Sittenhän kannattaa tehdä ihan oma kuva sille, eikä tehdä tuollaista scriptiä... :}
Itsekin käytän sellaista.
Irksome: se oli strtr() ei strstr() ;)
Kieltämättä aika sekavia nimiä nuilla funktioilla :P
Joo, strtr:hän se olikin. Mut oikaisin hieman ja nyysin tuolta php.net:n kommenteista simppelin kryptauskoodin.
<?php $unencripted = "hello"; $from = "abcdefghijklmnopqrstuvwxyz"; $to = "zyxwvutsrqponmlkjihgfedcba"; $temp = strtr($unencripted, $from, $to); /* will return svool */ ?>
Eli txt2png.php:ta kutsuessa käytetään $from ja $to - muuttujia luonnollisesti toisinpäin. Lähdekoodissa lukee <img src='txt2png.php?text=pzir.pvhgr@klsqloz.ur' alt='' />, ja kuva on sit ihan suomenkielinen. Tästähän vois jo koodivinkin tehdäkin, eikös? :) Kiitoksia kaikille vinkeistä.
Vielä kun otat tuon @ merkin pois ja laitat tilalle vaikkapa ison A kirjaimen, niin spämmibotit eivät varmasti edes voi arvata mitä tuossa on :)
Mitenkäs ne ASCII-koodit taas menikään... Kun tuon muunnoksen laittaa niitä vastaaville merkeille (ASCII-merkki 0 = ASCII-merkki 255, ASCII-merkki 1 = ASCII-merkki 254 jne...(vai miten ne numerot meni(mutta kuitenkin))), niin spämmibotit menee ihan sekasin kun näyttää tältä: ?ÿTÕ).ýÇ]µêoc~}|ß?A#X (ja tuossa vielä oli normaalisti ihan selkokielinen mailiosoite) >:) Paitsi, että sitten menee kyllä jo koodarillekin liian vaikeaksi...
Tuossa voi tulla vahingossa > merkki tai < merkki tai " merkki tai mikä tahansa kielletty merkki :P
muuten ihan hyvä idea...
Itse olen luopunut yrityksistä naamioida sähköpostiosoite, koska tämä aiheuttaa usein käyttäjälle ylimääräistä vaivaa ja roskapostia tulee kuitenkin. Kuva on siksi huono vaihtoehto, että se ei näy kaikilla selaimilla, vie paljon tilaa ja osoite täytyy kopioida käsin.
Paljon tilaa? hmm...
-> http://koti.mbnet.fi/winuus/haxorized.gif
Miksi tuo vie tilaa vain 215 tavua :-)
Ja tuo vaivan aiheuttaminen karsii turhien viestien lähettäjiä mukavasti.
lainaus:
Miksi tuo vie tilaa vain 215 tavua :-)
ööö, se on hyvin pakattu. aika vähän on 215 tavua kuitenki :D
Kuva on kuitenkin aina kuva, ja kuva ei ole koskaan hyvä tuollaisessa tapauksessa. Paitsi jos tarkoituksena on nimenomaan käyttäjän kiusaaminen.
Oma ratkaisuni ongelmaan: http://www.pikseli.biz/blog/archive/2004/02/12/
Lisäksi kuvan ollessa kyseessä tulisi kuvaan littää noisea taustalle jotta edistyneemmät spämmibotit eivät pystyisi tulkkaamaan kuvan tekstiä. Itse tyydyin (2713 spämmiä viikonloppuna, jonkin sortin enkka?) lisäämään NO_ ja _SPAM uusittuihin sähköpostiosoitteisiin.
keräilytilille on saapunut viestejä mm. seuraaviin osoitteisiin:
NO_sales_SPAM@futureality.net
NO_sales@futureality.net
_sales_@futureality.net
NOsalesSPAM@futureality.net
eli eivät näköjään vielä ole keksineet mitkä osat pitäisi poistaa. Toinen mitä mietin olisi käyttäjälle näkymätön linkki php-sivulle joka loisi lennossa esim. 20 000 tekaistua sähköpostiosoitetta... siinähän spämmäilevät prkl.
Kokemukseni mukaan [at] [dot] NOSPAM ja _NOSPAM muuttuu heti osoitteissa oikeiksi spämmibotin käsissä.
Tajuavatko spammirobotit sitä, jos teen @-merkin kahdesta kuvasta, ja pisteen yhdestä.
Eli siis vaikka
kuva1 = @:n loppupuoli
kuva2 = piste
kuva3 = @:n alkupuoli
Noin osoitteet saisi ihan kivan ja järkevän näköisiksi ainakin, mutta ovatko ne spämmärit jo keksineet, miten tuo menetelmä ohitetaan?
lainaus:
Miksi tuo vie tilaa vain 215 tavua :-)
Vie se siltikin yli viisinkertaisesti tilaa verrattuna tekstiin. :)
Minä olen kanssa sitä miettinyt, että ihan varmasti osoitteiden kerääjät osaavat poistaa nuo tavallisimmat hämäyskeinot mukaanlukien .invalid-pääte, vaikka monet suosittelevat niitä käyttämään.
lainaus:
Tuossa voi tulla vahingossa > merkki tai < merkki tai " merkki tai mikä tahansa kielletty merkki :P
muuten ihan hyvä idea...
No sen nyt voi korjata aika helposti PHP:llä... Itse en tosiaankaan ole mikään guru, ja melkein jo olen keksinyt korjauksen.
lainaus:
Tajuavatko spammirobotit sitä, jos teen @-merkin kahdesta kuvasta, ja pisteen yhdestä.
Eli siis vaikka
kuva1 = @:n loppupuoli
kuva2 = piste
kuva3 = @:n alkupuoliNoin osoitteet saisi ihan kivan ja järkevän näköisiksi ainakin, mutta ovatko ne spämmärit jo keksineet, miten tuo menetelmä ohitetaan?
Hmm, toi vois ollakkin hyvä esto spämmääjille, pelkästään @ merkin muuttaminen kuvaksi pitäisi auttaa, jolloin osoite on myös helpompi kopioida.
Tehkää sellainen scripti, joka kerää spam-sähkäpostiosoitteita ja postaa niiden välillä niiden omaa spam-postia. Eli toiselta spammaajalta toiselle. Ja mikäli niillä on systeemi, joka automaattisesti lähettää tälle toiselle, jos se vastaa mailiin, niin voitte kuvitella millainen liikenne syntyy niiden välillä. Loppuisi aika äkkiä spammaajilta into kun ne saavat toistensa spammia kokoajan :-D
-Grey-
Tuossa on vaan se ongelma, että spämmääjät käyttävät aika usein väärennettyjä osoitteita, joten on aika mahdotonta lähettää spämmääjille yhtään mitään sähköpostia.
lainaus:
Tuossa on vaan se ongelma, että spämmääjät käyttävät aika usein väärennettyjä osoitteita, joten on aika mahdotonta lähettää spämmääjille yhtään mitään sähköpostia.
usein? mun mielestä aina :P
lainaus:
Minä olen kanssa sitä miettinyt, että ihan varmasti osoitteiden kerääjät osaavat poistaa nuo tavallisimmat hämäyskeinot mukaanlukien .invalid-pääte, vaikka monet suosittelevat niitä käyttämään.
Invalid-päätettä ei ole tarkoitettu spammibottien hämäämiseksi.
Sitä tulisi kuitenkin käyttää aina, kun osoitetta sotketaan muilla keinoilla. Tämä siksi, että invalid-päätteestä ohjelman/käyttäjän on mahdollista tunnistaa, että kyseessä ei ole sinällään toimiva oikea osoite. Tämä kun ei ole aina itsestäänselvää. Jotkin ohjelmat osaavat sen poistaa ja jotkun muutoin huomioida.
lainaus:
Tehkää sellainen scripti, joka kerää spam-sähkäpostiosoitteita ja postaa niiden välillä niiden omaa spam-postia.
Huoh, todella pitkälle ajateltua. Luuletko, että spammaajilla on jokin oma pikku verkkonsa, että tuollainen ei rasittaisi muutenkin liitoksistaan natisevaa Internetiä jo entisestään.
Tuo olemattomien email-osoitteiden keksintä ei ole suositeltavaa, ellei ole jotain keinoa varmistaa, ettei yksikään niistä vahingossa ole toimiva. Jossakin olivat testanneet sähköpostiosoitteiden spämmiherkkyyttä, ja vaikkei erästä osoitetta oltu levitetty omistajan pääkoppaa pidemmälle, niin johan olivat spämääjät sen arvanneet.
PHP:n koodatusta selväsanaiseksi muutttaman osoitteen ei pitäisi haitata spämmirobotteja, sillä mielestäni ne käyvät pystyvät käymään läpi vain serverin niille palauttamaa koodia, jossa osoite on jo PHP:llä selvennetty. Tuo Pikselin käyttämä html-entities-muunnos voi auttaa jonkin verran, mutta robotit oppivat luultavasti pian muuttamaan ne oikeaan muotoon.
Javascript-suojaus on varmaan ainoa toimiva suojauksen muoto tässä tapauksessa (niin huvittavalta kuin se kuulostaakin), sillä se ei tapahdu jo serverillä eivätkä spämmirobotit varmaan vähään aikaan opi Javascriptejä ajamaan.
Aihe on jo aika vanha, joten et voi enää vastata siihen.