Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Päänvaivaa spämmiroboteille?

Sivun loppuun

Olga [19.02.2004 13:23:22]

#

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

?>

T.M. [19.02.2004 13:31:27]

#

Koodaa se sähköpostiosote strtr() funktiolla, tällöin ne eivät voi saada sitä mitenkään purettua :)

Olga [19.02.2004 13:51:53]

#

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ä.

Juhis [19.02.2004 13:59:15]

#

kyllä robotti tosta ton osotteen löytää, kun se on tuolla muuttujassa, eli ?text=maili@fi.org

T.M. [19.02.2004 14:01:14]

#

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ä :)

rainmikko [19.02.2004 14:03:34]

#

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.

T.M. [19.02.2004 14:05:01]

#

<?php
print strtr("ääliö", "äåö", "aao");
?>

Tuon pitäisi selittää kaikki...

rainmikko [19.02.2004 14:08:25]

#

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... :)

Olga [19.02.2004 14:10:04]

#

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.

Olga [19.02.2004 14:11:52]

#

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.

T.M. [19.02.2004 14:12:35]

#

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

Olga [19.02.2004 14:25:07]

#

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ä.

T.M. [19.02.2004 14:26:31]

#

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 :)

Quiz [19.02.2004 21:37:44]

#

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...

T.M. [19.02.2004 21:41:22]

#

Tuossa voi tulla vahingossa > merkki tai < merkki tai " merkki tai mikä tahansa kielletty merkki :P
muuten ihan hyvä idea...

Antti Laaksonen [20.02.2004 01:35:15]

#

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.

T.M. [20.02.2004 16:03:31]

#

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.

sooda [20.02.2004 16:05:41]

#

lainaus:

Miksi tuo vie tilaa vain 215 tavua :-)

ööö, se on hyvin pakattu. aika vähän on 215 tavua kuitenki :D

Pikseli [20.02.2004 16:22:06]

#

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/roskaa_roboteille/

leftover [20.02.2004 23:23:13]

#

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ä.

antsa [21.02.2004 01:06:42]

#

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?

Antti Laaksonen [21.02.2004 01:24:36]

#

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.

Quiz [21.02.2004 12:20:56]

#

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.

T.M. [21.02.2004 13:01:07]

#

lainaus:

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?

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.

Grey [21.02.2004 19:16:37]

#

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-

JTJ [21.02.2004 19:31:23]

#

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.

sooda [21.02.2004 19:41:36]

#

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

Pikseli [01.03.2004 22:51:21]

#

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.

Tempfile [02.03.2004 12:05:00]

#

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.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta