Programatorii Club - - materiale de pe Delfi și - arhiva blogului - protecție anti-spam în forumuri phpBB2

Postat de bullvinkle sub Magazine

Toate, într-un fel sau altul, se confruntă cu captcha. SARTSNA (testul complet automatizat Turing public pentru a spune Computers and Humans Apart) - complet automat de testare Turing publice pentru a diferenția între calculatoare și oameni). Este un test pe bază de calculator folosit pentru a determina care este un utilizator al sistemului: uman sau un calculator. În acest articol vreau să vorbesc despre două metode de protecție bazate pe motor pe forum phpBB2 de spam și roboții ...

vulnerabilități de securitate SARTSNA

Când script-urile nu sunt suficient de protecție la SARTSNA Spambot poate trece testul fără imagini de detectare. În acest caz, este fie un substitut pentru ID-ul de sesiune, sau Analizează informațiile conținute pe pagina WEB și determină ceea ce este prezentat în imagine. În cazul în care numărul de răspunsuri este Spambot mic poate „ghici“ răspunsul. De regulă, se utilizează mai multe fluxuri paralele, în care viteza de recuperare în funcție de lățimea de bandă canal disponibil. În plus, posibila acumularea și baza de date de întrebări și răspunsuri, și mai devreme sau mai târziu va fi tot lui.

Există programe care recunosc implementări specifice SARTSNA, de exemplu PWNtcha. Da, și nimeni nu deranjează să comunice cu software-ul de recunoaștere a textului module spammer, același FineReader. Se face deosebirea între un „puternic“ (puternic neclară și contrastul imaginii) și un SARTSNA „slab“. Ce să facă și cum să se protejeze împotriva boților de spam?

1. Schimbarea imaginii înregistrarea pe forumuri phpBB2

Pentru a face acest lucru, se procedează după cum urmează. În dosarul Forum usercp_confirm.php schimba fișier:

Eliminați toate fișierului după linia:

// ieșire șase pngs originale separate ... prima cale este de preferat!

// Datorită DavidMJ pentru emularea zlib în codul

și până la sfârșitul fișierului. În loc de partea îndepărtată, se introduce următorul text:

// Schimbarea imaginii de pe formularul de înregistrare

lista ($ usec, $ sec) = exploda ( '', microtime ());

$ Font = getcwd (). "/includes/font.ttf";

$ Img = ImageCreate (320, 50);

$ Color [] = ImageColorAllocate ($ img, 0, 0, 0);

$ Color [] = ImageColorAllocate ($ img, 255, 0, 0);

$ Color [] = ImageColorAllocate ($ img, 0, 255, 0);

$ Color [] = ImageColorAllocate ($ img, 255, 255, 0);

$ Color [] = ImageColorAllocate ($ img, 255, 0, 255);

$ Color [] = ImageColorAllocate ($ img, 0, 255, 255);

$ Color [] = ImageColorAllocate ($ img, 255, 255, 255);

$ Sx = ImageSX ($ img) - 1;

$ Sy = ImageSY ($ img) - 1;

$ Sc = count ($ culoare) - 1;

pentru ($ i = 0; $ i <1024; $i++)

$ X = mt_rand (0, $ sx);

$ Y = mt_rand (0, $ sy);

ImageSetPixel ($ img, $ x, y $, $ c);

$ Xpos = mt_rand (8, 32);

$ Înălțime = $ sy - mt_rand (0, $ sy / 4);

pentru ($ i = 0; $ i

$ Unghi = mt_rand (0, 30) - 15;

$ Dimensiune = mt_rand (0, + 32;

$ Ypos = $ sy - mt_rand (8, $ SY - $ înălțime - 8);

$ Rect = ImageTTFtext ($ img, $ dimensiune, $ unghi, $ xpos, ypos $, $ c, $ font, cod $ [$ i]);

$ Lățime = $ RECT [2] - $ RECT [0];

$ Înălțime = $ RECT [1] - $ RECT [7];

$ Xpos + = $ latime + mt_rand (4, 48);

pentru ($ i = 0; $ i <256; $i++)

$ X = mt_rand (0, $ sx);

$ Y = mt_rand (0, $ sy);

ImageSetPixel ($ img, $ x, y $, $ c);

pentru ($ i = 0; $ i

$ X1 = mt_rand (0, $ sx);

$ Y1 = mt_rand (0, $ sy);

$ X2 = mt_rand (0, $ sx);

$ Y2 = mt_rand (0, $ sy);

Imageline ($ img, $ x1, $ y1, $ x2, $ y2, $ c);

header ( "Content-type: image / png");

header ( "Cache-Control: no-cache, nu-magazin");

În plus, ar trebui să fie plasate în dosarul include un fișier cu font.ttf font, fișier care poate fi descărcat de mai jos. posibil să se utilizeze orice alt font TrueType Opțional [1]. conținând litere și numere. Deoarece experiența acestei metode în multe forumuri, roboții de înregistrare automată după o astfel de modificare este oprită complet (a se vedea figura.):

2. Se lasă să trimită mesaje private utilizatorilor cu 20 sau mai multe mesaje

pe forum phpBB2 (spam în PM). Da, astăzi, și acest tip de spam este cazul. Deși el nu a primit încă largă de distribuție, este timpul să se gândească la protecție. Deci, ce să fac ...

în cazul în care (modul de $ == 'newpm')

Adăugați următorul cod de mai sus:

// START: trimiterea de mesaje personale numai utilizatorilor 20 de posturi pe forum

în cazul în care (modul de $ == 'post' || modul de $ == 'răspuns' || modul de $ == 'citat')

Trimite mesaje private pe care le pot, atunci când puteți câștiga $ mod_mes_count sau mai multe posturi „);

// END: Trimiterea de mesaje personale numai utilizatorilor 20 de posturi pe forum

Deja am dat seama cum să eliminați principala vulnerabilitate - font fix și o poziție fixă ​​a personajelor. Dar, ca întotdeauna, se va adăuga „o lingură de gudron.“ Faptul este că astăzi o proliferare a serviciilor de tip CaptchaExchange Server. Aceste servicii au ca scop „ocolirea“ imagine SARTSNA de mână recunoașterea caracterului „uman“. Principiul de funcționare se bazează pe un sistem de credit, pe care utilizatorul poate face, recunoscând imaginile în timpul său liber pentru alți utilizatori. Acumulate puncte, utilizatorul poate cheltui mai târziu, în orice moment, prin rularea programului descarcă automat fișierele de pe serverul de partajare de fișiere, sau să se înregistreze. Din păcate, și în al doilea rând, am considerat, metoda nu oferă o garanție de 100%, dar obiectivul principal va fi atins - este de a reduce sarcina pe utilizatorii de servicii și calm relativ.

opțiunea de font pentru înlocuirea offline