Jednostavno rješenje za zaustavljanje spama na domaćim forumima

SpamNa našim akademskim ustanovama veoma je popularan vrlo konfigurabilan softver za forume - phpBB. Čak postoji i službena CARNetova verzija phpbb2-cn (trenutno u verziji 2.0.13 za debian-sarge). Na službenim web stranicama www.phpbb.com stoji da je već neko vrijeme u opticaju i nova verzija 3.0.

Na stranicama TTF-a (Tekstilno-tehnološkog fakulteta, op.a.) već treću godinu radi taj 'buletin board' softver u funkciji foruma za studente i opslužuje više od tisuću korisnika. Nevolja je nastala kada su se počeli masovno pojavljivati zagađivači (spameri) i svakodnevno zagađivali forum s porno i inim sadržajima. Dva su moderatora bili premalo da brišu linkove na takve web stranice, pa je imenovan i treći, no ni spameri nisu mirovali, nego su razvijali sve sofisticiraniji automatski softver za spamiranje, tzv. robote. Trebalo je svako jutro ručno čistiti mysql bazu foruma od neželjenog spama tj. reklama za viagru, kockarnice, lotto, linkova na pornografske stranice i sl, te ručno brisati novoprijavljene fantomske korisnike. Ni uključenje odgovarajuće opcije u sučelju za administriranje, koja postavi zahtjev da se mora unijeti kod prikazan unutar zamućene slike prilikom registriranja novog korisnika, nije znatnije zaustavilo spam, jer novi roboti imaju uključen OCR, tj. alat za prepoznavanje teksta u slikama.

Ova bitka sa spamerima dostigla je globalne razmjere i polučila ekstremne metode u borbi protiv njih, a kako je unaprijeđivan OCR softver, tako da je mogao prepoznati znak već i na osnovu samih kontura, kodovi ukomponirani u slike postajali su sve nečitljivi čak i za ljudsko oko (jedan od tipičnih primjera može se vidjeti na http://www.truden.com/sec_test_f2.php) da bi se izbjeglo "čitanje" pomoću OCR-a.

Iz diskuje na phpBB službenim stranicama vidljivo je koliko je teška borba protiv spama, pa se administratori foruma domišljaju dograđivanjem phpBB-a raznoraznim izvanjskim modulima (http://www.phpbb.com/community/viewtopic.php?f=1&t=427852) koji onemogućavaju automate i zahtijevaju ljudsku intervenciju. Kao najbolja obrana u tom smislu se pokazalo da je, ako se korisniku, koji se želi registrirati postavi neko jednostavno pitanje, na koje treba smišljati odgovor. Tu zakaže svaki automatski alat, koji koriste spameri. Upravo ovu posljednju metodu kombiniranu s postojećom metodom vizualnog koda smo primijenili na TTF-u i time 100% zaustavili sve automate za spamiranje. Ideja je bila da umjesto prva tri znaka vizualnog koda, korisnik foruma treba upisati troslovnu kraticu imena našeg fakulteta, tj time smo automatski uključili i da mora odgovoriti na jedno jednostavno pitanje: Kako glasi kratica imena fakulteta, domaćina foruma? Što je najbolje, metoda je toliko jednostavna za implementirati (svega 5-10 minuta posla), da se stostruko isplati. Dovoljno je editirati datoteku: usercp_register.php, koja se obično nalazi u direktoriju /usr/share/phpbb2/site/includes/ i upisati umjesto redka 300 koji glasi:

if ($row['code'] != $confirm_code), 

slijedeći hack:

 

   //Luka, 9.5.07 ugly hack START
$ttf='TTF'; // may be different
$part_code=substr($row['code'], 3, 3);
$new_code=$ttf.$part_code;

//if ($row['code'] != $confirm_code)
if ($new_code != $confirm_code)
// Luka, END

a u datoteku: lang_main.php, koja se nalazi u direktoriju /usr/share/phpbb2/site/language/lang_english/ treba upisati upozorenje/uputu korisniku koju će pročitati pored rubrike za unošenje vizualnog koda prilikom registracije. (Mi na TTF-u koristimo hrvatsku verziju phpBB softvera, pa se u tom slučaju lang_main.php datoteka nalazi u direktoriju /usr/share/phpbb2/site/language/lang_croatian/). U toj smo datoteci promijenili dva reda 674 i 675 koji sada sadrže upozorenje korisniku istaknuto crvenim slovima (da je uočljivo da nije dovoljno makinalno unijeti vizualni kod) da treba zamijeniti prva tri slova koda kraticom imena fakulteta. Redovi 674 i 675 sada odprilike trebaju glasiti:

 

$lang['Confirm_code'] = 'Potvrdni kod * (<FONT COLOR="FF0000">prva tri znaka koda zamijenite kraticom 
imena fakulteta, domaćina foruma<FONT COLOR="FF0000">)';
$lang['Confirm_code_explain'] = 'Unesite kraticu imena fakulteta, domaćina foruma i (bez razmaka)
posljednja tri slova vizualnog koda';

 

Ovo rješenje podrazumjeva da se vizualni kod sastoji od šest znakova, što je kodirano u gore spomenutoj datoteci usercp_register.php u redku 516 koji glasi:

$key_len = ( $key_len > 6 ) ? $key_len : 6;

Rezultati tog zahvata vidljivi su u sučelju za registriranje na studentski forum TTF-a na web adresi: http://singer.ttf.hr/studenti/forum/ ako se klikne na link za registriranje.

Kuharice: 
Kategorije: 
Vote: 
0
No votes yet