Sähköpostiosoitteet nettisivuille turvallisesti strtr()-funktion ja GD-kirjaston avulla. Osoitteet näkyvät lähdekoodissa sekamelskana, mutta sivuilla oikein .png - muotoisena kuvana.
txt2png.php
<?php // txt2pngAntiSpam 0.01 // // Irksome & ohjelmointiputkan kaverit, // kts. https://www.ohjelmointiputka.net/keskustelu/3953-p%C3%A4%C3%A4nvaivaa-sp%C3%A4mmiroboteille // saapi käyttää ja näyttää ihan vapaasti :) // // skripti saa parametrinaan kryptatun tekstinpätkän, // jonka se muuntaa takaisin selkokieliseen muotoon // ja tekee siitä png-kuvan. // // esimerkki toiminnasta löytyy osoitteesta // http://mbnet.fi/irksome/testaus/pertinkaverit.php header("Content-type: image/png"); // kuvaheaderi $from = "zyxwvutsrqponmlkjihgfedcba"; // muunnettavat merkit... $to = "abcdefghijklmnopqrstuvwxyz"; // ... joiksi muunnetaan $teksti = strtr($_GET['text'], $from, $to); // muutetaan parametrina saatava teksti takaisin selväjärkiseen muotoon $leveys = 8*strlen($teksti); // kuvan leveys $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 ?>
käyttöesimerkki, pertinkaverit.php
<?php print "Sähköpostiosoitteet:<br />\n"; print "Esko: <img src='txt2png.php?text=".kryptaa("esko.aho@ahonlaita.com")."' alt='' /><br />\n"; print "Mauno: <img src='txt2png.php?text=".kryptaa("mauno.mainio@maunolandia.org")."' alt='' /><br />\n"; print "Kyllikki: <img src='txt2png.php?text=".kryptaa("kyllikki.jauhoaivo@koomarket.fi")."' alt='' />\n"; function kryptaa($teksti) { $from = "abcdefghijklmnopqrstuvwxyz"; // muunnettavat... $to = "zyxwvutsrqponmlkjihgfedcba"; // joiksi muunnetaan return strtr($teksti, $from, $to); // palautetaan sekamelska } // funktio ?>
Ja niinku T.M. ehdotti, olis voinu vielä muuttaa kryptauksen yhteydessä tuon @-merkin vaikkapa isoksi A-kirjaimeksi, niin olis saanu spammirobotit vielä enemmän ymmälleen. Mut se jääköön kotitehtäväksi... :)
Joo, hyvä että teit koodivinkin, monille varmasti hyötyä.
hyvä juttu.
Pienoisia kirjoitusvirheitä... ei siis tulosteta tuossa funktiossa mitään sekamelskaa, vaan luonnollisesti palautetaan. Ja iso homma ei tosiaan olis ollu laittaa noiden stringirimpsujen perään esim. just nuo @-merkki ja pisteet. Tää kyl estää tehokkaasti myös osoitteen copypastettamisen, mut sen kanssa täytyy vain elää :)
Itekki tuommosen just vähän aikaa sitten tehny, mutta tää on kyl vähän kehittyneempi
Uih, vinkkiä voi näköjään muokata. Kätevää :)
Voisi laittaa kryptaukseen myös numerot... Ja sitä paitsi tuossa on yksi pieni virhe.
Tämä...
$to = "abcdefghijklmnopqrstuvwxyz"; // muunnettavat merkit... $from = "zyxwvutsrqponmlkjihgfedcba"; // joiksi muunnetaan
...tällaiseksi
$from = "9876543210zyxwvutsrqponmlkjihgfedcba"; // muunnettavat merkit... $to = "abcdefghijklmnopqrstuvwxyz0123456789"; // joiksi muunnetaan
Ehdotus vain...
mites tuo sininen saadaan mustaksi - siis kun se näyttää sen tekstin sinisenä - että se saisi näyttämään sen mustana, vihreänä, punasena ja jollain muullakin värillä, miten saa eri värejä
hups olinpas tyhmä.
iha pelkkää rgbtä
Täähän on ihan helmi systeemi.
superi. käyttöön välittömästi -->
Huomasin juuri tässä että: opera on perseestä.
Noi email-osoitteet eivät näy operalla ollenkaan (koskien tuota esimerkkisivua), koska nerokas opera muuttaa tekstin värin läpinäkyväksi, vaikka ei pitäisi? IE:llä ja netscapella tuo toimii ihan hyvin, ja näkyy oikeasta kohdasta läpi (eli ei tekstistä).
Jännä juttu. Oon kyl joskus ennenku huomannu häikkää tuon imagecolortransparent-funktion ja joidenki selainten kanssa. Mut mun Opera 7.23 kyl näyttää noi ihan oikein, toisin ku sit toi 6.05. Mut täytyy myöntää et toi 6.05 on kyl ihan ihmeellinen versio. Mä en oo koskaan saanu mitään mun sivuja toimimaan sillä kunnolla ja sit ihmettelin ku kaikki kehu Operaa. Mut sit toi 7.23 näyttäis tukevan ihan oikein kaikkia standardeja ja toimii ku se kuuluisa junan vessa :)
On esitetty että pitäisi muuntaa @-merkkikin. Eikä pidä, saavatpahan spammirobotit olemattomia osoitteita listoilleen, jos ne noista ymmärtävät kerätä...
Tää on pirullinen :]
hyvin vörkkas
kyllikki.jauhoaivo@koomarket.fi
:D !!
Tuossa:
$from = "abcd"; // muunnettavat merkit...
$to = "1234";
sehän muuttaa a:n ykköseksi b:n kakkoseksi jne.
joten joku joka jaksaa (4 j alkuista sanaa... wow) niin voi ohjelmoida semmoisen ohjelman joka katsoo mikä kirjain muuttuu miksikin ja palauttaa arvot takaisin selkomuotoon ja lähettää sinne spämmiä. Eli kannattaa laittaa tuohon $to kohtaan niin monta välilyöntiä kuin tuossa $from kohdassa on merkkejä.
Osaako joku neuvoa tyhmää, miten muokkaan tekstin fonttia ja ulkoasua? verdana, arial, b, i etc.
Käytä imagestring-funktion sijaan imagettftext-funktiota.
Ihmettelin ku ei toiminu, mut olinkin vahingossa ajatuksissani laitta nu sen txt2png.COM :)
Nykyään demo taitaa olla toiminnassa täällä:
http://koti.mbnet.fi/irksome/testaus/
Kiitos tästä, tulee varmastikkin olemaan hyötyä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.