Tehno log.

Tehno log. Blog Engine v0.5

Skrivena captcha - kako jednostavno i neprimetno protiv spambotova?

11.11.2007 - 17:25

Tehnika koju ću opisati nije nova, ali veoma jednostavno i uspešno zaustavlja spambotove koji automatski popunjavaju forme, uz to je neprimetan pod browserima koji podržavaju CSS. Ne znam koliko je bolje rešenje od uobičajenog Turing testa sa izlomljenim tekstom, ali sam sa ovom metodom uspevao da zadržim odprilike 95% spamova - a ostalih 5% su ili ipak uspeli da zaobiđu filter, ili su bili plaćeni kinezi koji su ručno popunjavali forme :)

Teorija

Kao prvo, onima koji ne znaju kako spambotovi funkcionišu: to su u stvari programi koji skeniraju sajt stranu po stranu i kad naiđu na upitnik, popune polja po pre-programiranim uputstvima i postave svoje nepoželjne reklame ukoliko pronađu polje za unos teksta.
Osnovna ideja ove je metode izuzetno jednostavna. Trebamo navesti bota da popuni jedno polje koje je namenjeno isključivo njemu, dok je sakriveno od običnih korisnika. Klopka je u tome da bot neće znati razlikovati koji field treba da popuni i koji ne, sem ako nije izgrađen "ekskluzivno" za naš sajt. Znači, sa CSS-om sakrijemo jedan input field koji će spambot automatski da popuni, a nama preostaje da proverimo da li je polje popunjeno, i ako jeste, da zaustavimo obradu podataka.

Praksa

• Upitnik/HTML

U upitniku imamo jedan deo koji je sakriven od korisnika. Ja sam u ovom primeru taj field nazvao "spam", ali ga za svaki slučaj možemo nazvati "name" ili "address", znači nešto uobičajeno što će spambot sigurno da popuni. Meni se dešavalo da bot ne popuni polje "phone" ili u ona polja koja ne razume stavi vrednost "none". Takođe je važno da javimo korisnicima koji ne koriste web čitače sa CSS-om da polje služi kao filter.

<fieldset>
<legend>Moj upitnik</legend>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<div class="input_style">
<label for="ime">Ime</label>:<br />
<input type="text" name="ime" id="ime" value="" /><br />
<br />
<label for="prezime">Prezime</label>:<br />
<input type="text" name="prezime" id="prezime" value="" /><br />
<br />
</div>
<div class="sakriveno_polje">
Ukoliko vidite ovo polje, browser vam
najverovatnije ne podrzava ili ne prikazuje CSS. Nemojte ga popuniti, sluzi za
filtriranje spam botova<br />
<input type="text" name="spam" id="spam" value="" />
</div>
<input type="submit" name="unos_podataka" value="Unos" />
</form>
</fieldset>

• CSS

CSS za sakriveno polje.

.sakriveno_polje {
position: absolute;
visibility: hidden;
}

• PHP

Sve što nam preostaje da sa serverske strane proverimo da li je popunjeno polje i ukoliko jeste - da žavršimo izvršavanje obrade podataka, eventualno da redirektujemo bota.

// Proveri da li je pritisnuto dugme "Unos"
if(isset($_POST['unos_podataka'])){
// Proveri da li su popunili polje "spam"
if($_POST['spam']){
// Zaustavi obradu, redirektuj
echo "Vi ste spambot u akciji ili niste procitali uputstvo";
}else{
// Obradi podatke
echo "Ok. Najverovatnije niste spamer";
}
}

Funkcionalnost

Upitnik sa sakrivenim poljem (ono što vide korisnici)

Upitnik bez CSS stiliranja (ono što vidi spambot)

Download: skrivena_captcha.zip (.zip, 1k)

Ukoliko ste već koristili ovu metodu ili ćete ga tek ugraditi u svoje upitnike, rado bih pročitao i vaša iskustva o tome koliko vam pomaže u filtriranju spamova. Odnosno da li pomaže uopšte :)
Post koji čitate je postavljen pre 302 dana i dosad je ova strana prikazana 216 puta
Spada u kategoriju: php webdesign

Napišite komentar



LDP

Zadnjih 10 postova

» Hoću to u Srbiji
» Dnevna geek muzika: Aleksi Eeben
» www.tehno-log.com
» Ubuntu 8.4 - Hardy Heron
» Damn Small Linux 4.3
» Fedora 9 Preview
» Linux 2.6.25
» Forever 9 Report
» OpenMac
» Still Alive

« Arhiva


Preporučujem

» Google Hacks - Švajcarski nož Google pretrage
» Modem Emulator
» Skrivena captcha - kako jednostavno i neprimetno protiv spambotova?


Zadnji komentari



Najčitanijii

» Majice, Srbija, hemoroidi (520)
» MySpace hack sa jednostavnom HTML/CSS tehnikom (509)
» GMail Drive 1.0.12 - Virtuelni Hard Disk (436)
» Kad programerima robota postane dosadno (382)
» Google Hacks - Švajcarski nož Google pretrage (378)
» gOS (GreenOS) - Poljski OS za široku masu (351)
» Modem Emulator (306)
» Fedora 8 Games (LiveCD) (267)
» Dnevna geek muzika: Pornophonique (256)
» Opera Mini 4 (250)


Kategorija

»
»
»
»
»
»
»
»
»
»
»
»
»
»
»
»
»
»
»
»
»
»
»
»
»
»
»


Linkovi

Hoteli.co.yu
Mustra bečka
Lemur page
Odjeba.us
MODMancer
Kovacs Nora


Promenite font

Arial
Verdana
Georgia
Default font browsera



Unikatne posete

Statistika zabrujala 09.11.2007 (pre 304 dana) u 14:00

83 u proteklom danu
574 u proteklih nedelju dana
24073 poseta ukupno