Cum se configurează smartphone-uri și PC-uri. Portal de informare
  • Acasă
  • Erori
  • ReCAPTCHA - cel mai simplu captcha Nu sunt un robot de la Google.

ReCAPTCHA - cel mai simplu captcha Nu sunt un robot de la Google.

Introducerea unui captcha poate fi necesară pentru a utiliza corect un program, un site web sau pentru înregistrare. Esența captcha-ului este simplă: să confirmi că nu ești un robot. Dar ce ar trebui să faci dacă nu se deschide sau îți spune cu încăpățânare că ai introdus un rezultat incorect?

    • De ce este dificil să recunoști captcha?
    • Dacă captcha este introdus incorect
    • Cum să introduceți captcha pentru bani

Dacă trebuie neapărat să vă înregistrați pe un anumit forum, mai întâi încercați să verificați dacă captcha funcționează. Pentru a face acest lucru, trebuie să deschideți imaginea într-o fereastră separată și să vedeți ce va fi afișat (nimic, o imagine, un cod). Dacă apar caractere ciudate, atunci motivul este cel mai probabil o eroare a codului. În acest caz, puteți scrie doar către administrația site-ului.

De ce este dificil să recunoști captcha?

Mai jos sunt câteva modalități de a vă proteja:

  • utilizarea alfabetului rus (excluderea englezei);
  • folosind o combinație de litere din alfabetul rus și numere;
  • S-a introdus protecție suplimentară sub forma aplicării diferitelor filtre, distorsiuni, gunoi etc.

O astfel de protecție complică foarte mult citirea și recunoașterea captcha nu numai pentru specialiști, ci și pentru utilizatorii obișnuiți ai resurselor de internet, a căror pregătire este de câteva ori mai mică.

Dacă captcha este introdus incorect

Problema cu captcha apare din diverse motive: la introducerea unui captcha, o imagine se deschide cu unul sau două cuvinte care sunt ușor diferite de fundalul imaginii, în plus, forma simbolurilor este distorsionată, cuvintele sunt scrise cu erori. ; Este dificil pentru un computer să recunoască fonturi distorsionate și text fără sens, dar o persoană poate folosi acest lucru pentru autentificare.

  1. Conectați-vă din diferite browsere. Uneori ajută.
  2. Verificați viteza internetului. Faptul este că, la rate foarte mici, imaginea poate pur și simplu să nu se încarce. Sau fă-o cu greșeli.
  3. Asigurați-vă că permiteți afișarea imaginilor, deoarece un captcha este în esență o imagine. Este recomandabil să priviți acest lucru în setările corespunzătoare. Dacă a existat o limitare, remediați-o și reporniți browserul.
  4. Conectați-vă de pe pagina principală a site-ului. Acest lucru chiar funcționează uneori.
  5. Încercați să găsiți versiunea audio a captcha-ului. Este foarte posibil ca totul să fie în ordine cu actoria vocală.
  6. Încercați să vă înregistrați sau să efectuați acțiunile necesare de pe telefonul mobil. Se întâmplă ca versiunea mobilă a site-ului să funcționeze bine.
  7. Verificarea nu trece: captcha poate intra în conflict cu software-ul antivirus, este perceput ca un element potențial periculos. Încercați să vă dezactivați antivirusul și să reîmprospătați pagina;
  8. Întrebați dacă alți utilizatori de pe RuNet se confruntă cu o problemă similară. În acest fel, veți ști cu siguranță dacă această problemă este legată de computerul dvs.

Cel mai probabil, una dintre aceste metode va funcționa. În caz contrar, trebuie să căutați alte opțiuni.

Ei bine, în cazurile în care nu este posibilă evitarea unui captcha în mod programatic, CAPTCHA-ul este introdus manual folosind munca unor oameni reali care trimit aceste date atacatorului sau rezolvă captcha-ul în timp real datorită API-ului.

Deci, ne-am dat seama de instrumentele și motivele hackerilor. Să ne uităm acum la cele mai comune metode de ocolire a CAPTCHA, sortându-le în două grupe: cele care sunt posibile din cauza erorilor programatorului la implementarea CAPTCHA și cele pentru care sunt folosite tehnologii moderne.

Să începem în ordine, și voi încerca să le așez în ordinea complexității crescânde a protecției împotriva lor, începând cu cele mai primitive și terminând cu cele pentru care nu au fost încă inventate metode de protecție.

Pentru a crea intrigi, voi spune că în acest moment sunt trei.

Ocolirea captcha din cauza erorilor de implementare

Dacă îi întrebați pe creatorii propriilor lor implementări CAPTCHA despre cum să ocoliți captcha, ei vă vor spune cel puțin mai multe moduri. Dar cel mai interesant lucru este că ei înșiși lasă uneori ferestre și uși în creațiile lor pentru hacking.

Acest lucru se întâmplă adesea din cauza factorului uman, sau mai degrabă a neatenției obișnuite în timpul dezvoltării și a lipsei de minuțiozitate atunci când se testează securitatea captcha-urilor.

Dar uneori există și lipsă de experiență, din cauza căreia programatorul pur și simplu nu era conștient de unele metode de ocolire a captcha în momentul dezvoltării.

După cum am promis, în această secțiune mă voi uita la cele mai comune, precum și la modalități de a vă proteja împotriva lor. Și să începem, așa cum am promis, cu cel mai primitiv lucru.

Ocolind captcha cu un set fix de sarcini

În zorii captchas-urilor, captch-urile scrise de sine erau foarte populare ca mijloc de luptă împotriva roboților, deoarece toată lumea dorea să încerce noua tehnologie și, în consecință, captchas-urile au fost inventate de toți cei care nu erau prea leneși.

În cazul utilizării captch-urilor auto-scrise, în implementarea cărora dezvoltatorii au decis să nu se deranjeze cu o bază de date mare de imagini, întrebări sau alte tipuri de sarcini, pentru un atac automat țintit pe un site cu un astfel de CAPTCHA, doar trebuie să aflați răspunsurile manual.

Aceste. mergem pe un astfel de site, selectăm răspunsuri, alcătuim o bază de date de sarcini și soluții corecte și scriem un bot pentru atacuri cu forță brută care va selecta opțiunile potrivite.

Dar, din fericire, nu vei putea întâlni multe astfel de situații în lumea modernă, pentru că... securitatea cibernetică a atins de atunci un nivel foarte respectabil și nimeni nu creează astfel de primitivi.

Și dacă există astfel de oameni, atunci ei învață foarte repede din greșelile lor atunci când își pierd controlul asupra site-ului sau asupra clienților care au fost piratați din cauza unor astfel de creații.

Protecţie: nu creați niciodată captch-uri cu un set de probleme, soluții la care pot fi selectate manual. Dacă pentru a rezolva un captcha trebuie să rezolvați un exemplu matematic sau să introduceți caractere dintr-o imagine, atunci sarcinile și răspunsurile la acestea ar trebui generate automat.

O altă modalitate de a vă proteja împotriva unei astfel de introduceri automate de captcha este să schimbați numele câmpului formularului în care ar trebui să fie introdus răspunsul. Dacă numele câmpului, de exemplu, este întotdeauna „captcha”, atunci va fi mai ușor pentru un atacator să spargă un astfel de captcha. Programul său robot va trimite pur și simplu o solicitare către script-ul serverului specificat în atributul HTML „acțiune” al formularului, care conține valoarea captcha necesară.

Dacă în această situație numele câmpului captcha este tot timpul același, atunci hackerul va folosi pur și simplu baza de date cu cele mai comune nume de câmpuri captcha, pe care o puteți compila singur în timp ce studiați diverse site-uri sau descărcați gata făcute pe servicii specializate. resurse (nu le voi enumera pentru a promova hacking-ul).

Dacă numele câmpului, ca și sarcina captcha în sine, este generat pe server, atunci nicio bază de date cu nume captcha nu va ajuta. Pentru a utiliza un nume de câmp dinamic, în practică, captcha este generat de un script și procesat de altul.

În acest caz, implementarea captcha are o nuanță semnificativă: scriptul care procesează corectitudinea intrării sale va trebui să treacă cumva numele câmpului captcha. Acest lucru se face cel mai adesea folosind formulare de intrare ascunse, atribute de date sau trecerea lor prin cookie-uri sau o sesiune.

Punctul cheie este că nu puteți transmite numele direct, adică câmpul captcha se numește „captcha_mysite”, iar câmpul ascuns conține valoarea „captcha_mysite” sau „site”. Trebuie să fie criptat, iar decriptarea trebuie să aibă loc folosind același algoritm ca și criptarea.

Deoarece algoritmul de criptare va fi stocat pe server, un atacator nu îl va putea recunoaște cu ușurință (cu excepția cazului în care obține acces la conținutul script-ului serverului).

Apropo, este suficient să folosiți o secvență aleatorie de caractere în locul numelui câmpului, ceea ce este foarte ușor de obținut în PHP folosind funcția uniqid().

Ocoliți captcha folosind sesiuni

Dacă implementarea unui captcha implică stocarea răspunsului corect într-o sesiune, iar sesiunea nu este creată din nou după introducerea fiecărui captcha, atunci atacatorii pot afla identificatorul de sesiune și pot afla valoarea criptată a CAPTCHA.

Astfel, ei pot selecta cu ușurință un algoritm de criptare și îl pot folosi pentru alte atacuri automatizate de forță brută folosind roboți.

De asemenea, dacă în codul de verificare a răspunsului utilizatorului pe server, programatorul nu verifică golirea variabilei de sesiune în care este transmis răspunsul utilizatorului, atunci hackerul poate folosi un identificator de sesiune inexistent pentru care variabila pur și simplu nu va exista.

Datorită acestei omisiuni, astfel de captcha-uri pot fi rezolvate inserând ID-uri de sesiune inexistente și valori captcha goale.

Protecţie: Indiferent cât de mult ar dori cineva să renunțe la utilizarea sesiunilor pentru a transfera valori captcha, acesta este un preț foarte mare de plătit pentru asigurarea siguranței captcha-urilor împotriva hackingului. Prin urmare, sesiunile, valorile variabilelor și identificatorii lor trebuie pur și simplu protejate cu grijă, astfel încât un hacker să nu poată folosi informațiile stocate în ele.

De asemenea, merită să efectuați toate verificările banale, dar atât de necesare, ale variabilelor pentru existența și golul valorilor acestora.

Spargerea unui captcha din cauza informațiilor secrete din codul clientului

Uneori, captch-urile sunt realizate în așa fel încât atunci când se transferă valorile utilizatorului către server, criptarea este utilizată folosind așa-numita „sare”, adică. adăugarea unui ID de sesiune, a unei valori IP sau a altor date unice la valoarea CAPTCHA. Adesea, aceasta poate fi o simplă succesiune aleatorie de simboluri.

Iar condiția principală pentru rezolvarea unui captcha este ca valoarea CAPTCHA criptată introdusă de utilizator să se potrivească cu valoarea sa corectă, care a fost generată la deschiderea paginii și înregistrată într-o sesiune sau altă stocare pentru transmiterea ulterioară către server.

Coincidența acestor valori va indica cel mai probabil că utilizatorul este o persoană reală care a introdus captcha-ul generat în timpul unei sesiuni de comunicare, la finalul căreia l-a rezolvat și de pe același computer pe care a văzut prima dată captcha-ul.

Dacă aceste valori unice nu se potrivesc, atunci cel mai probabil captcha a fost introdus automat de robot.

Acest mecanism de protejare a site-ului de roboți este bine gândit, dar uneori aceste valori secrete generate sunt prezente în codul HTML al paginii, de unde pot fi citite cu ușurință. Prin urmare, puteți configura citirea lor automată folosind programe și aceeași intrare automată atunci când treceți un captcha.

Protecţie: Atunci când implementați singur un CAPTCHA, trebuie să țineți cont de această gaură de securitate, iar dacă pentru a rezolva un captcha trebuie să luați în considerare valoarea unui identificator unic, atunci trebuie să vă asigurați că nu este menționat nici în JS. sau în codul HTML care poate fi vizualizat în browser.

De asemenea, trebuie să recreați ID-ul sesiunii și să generați alte valori unice (inclusiv CAPTCHA-ul propriu-zis, dacă este posibil) după fiecare încercare de a introduce captcha, ceea ce vă va salva sau cel puțin va face mai dificil pentru hackeri să pirateze site-ul prin selectând automat valoarea corectă.

Un alt mijloc de protecție este, dacă este posibil, blocarea acțiunilor după IP și numărul de încercări.

Cum să ocoliți captcha fără a schimba IP

Atacul cu forță brută este o modalitate eficientă de a ocoli captcha nu numai atunci când este implementat cu un set fix de sarcini și soluțiile acestora.

O altă greșeală în implementarea CAPTCHA, care îl face vulnerabil la atacuri automate, este lipsa limitelor de timp pentru rezolvarea unui captcha și numărul de încercări.

În acest caz, va fi posibil să ocoliți captcha folosind un program special care va colecta o bază de date de întrebări sau va selecta răspunsuri din lista disponibilă. Mai mult, toate acestea se vor face automat datorită metodelor moderne de învățare automată și dezvoltărilor din domeniul inteligenței artificiale, care au făcut un mare pas înainte în ultimii ani.

Protecţie: Când implementați un captcha cu adevărat sigur, trebuie să limitați timpul de răspuns și numărul de încercări de a rezolva captcha de la un IP pentru a bloca atacurile cu forță brută ale roboților.

De exemplu, dacă au trecut mai puțin de 2 secunde între generarea unui captcha și răspunsul utilizatorului, atunci considerați un astfel de utilizator un robot și afișați un mesaj corespunzător pe ecran. Textul mesajului ar trebui să conțină instrucțiuni pentru utilizatori reali ca introducerea să nu fie făcută atât de repede (în cazul în care persoana respectivă a fost capabilă fizic să introducă răspunsul mai repede).

Dacă a fost într-adevăr o persoană, atunci va lua măsurile adecvate, iar dacă este un robot, va continua să încerce să ocolească captcha.

Asemenea încercări ar trebui considerate incorecte, numărul lor fiind înregistrat în variabila sesiune și acțiunile ulterioare blocate pentru utilizatori de IP-ul lor. De asemenea, ar fi o idee bună ca astfel de adrese blocate să emită un mesaj pentru a contacta administratorul în loc de un captcha dacă utilizatorul blocat era o persoană reală.

Și o altă modalitate eficientă de a combate boții este introducerea de limite pentru anumite acțiuni de pe site. De exemplu, o înregistrare de la un IP. Principalul lucru aici este să nu exagerați și să nu atingeți limitele privind numărul de comentarii pentru un utilizator unic.

Dar, într-adevăr, aceste măsuri nu vor ajuta prea mult datorită existenței serverelor proxy.

Ocolirea captcha folosind un proxy

Chiar și în situațiile în care blocarea unui număr mare de încercări de a rezolva un captcha prin IP încă are loc, această măsură nu oferă protecție 100% față de roboți.

Totul se datorează serverelor proxy și programelor de anonimizare care funcționează pe baza lor, care sunt cunoscute probabil de fiecare școlar modern care caută modalități de a ocoli controlul parental și de a bloca site-urile interzise.

Anonimizatoarele vă permit să ascundeți datele computerului atunci când utilizați site-ul, inclusiv adresa IP prețuită, prin care clientul poate fi identificat și blocat.

Schema este simplă: utilizatorul se conectează la un server proxy, unde datele sale sunt criptate sau înlocuite cu altele (de exemplu, vi se poate atribui o adresă IP dintr-o altă țară), apoi se face o solicitare către site-ul țintă către care clientul dorește să se conecteze.

Astfel, un atacator poate ocoli cu ușurință toate blocurile dvs. de IP și va selecta soluția corectă pentru captcha atât timp cât are nevoie.

Și pe unele site-uri unde captcha apare numai atunci când se efectuează un număr mare de acțiuni identice (de exemplu, în VK când se adaugă un număr mare de prieteni), este posibil să nu apară deloc dacă fiecare acțiune este efectuată de la un nou IP și respectând timeout-uri între încercările de a rezolva captcha, astfel încât comportamentul botului să fie similar cu comportamentul unei persoane reale.

Această metodă a fost folosită în urmă cu jumătate de secol la scrierea primelor programe care trec testul Turing, a cărui implementare este CAPTCHA.

Principiile descrise, apropo, sunt folosite de toate programele cunoscute în prezent pentru introducerea automată a captcha. Pentru a schimba adresa IP de conectare la un site, aceștia folosesc baze de date gratuite și comerciale de servere proxy, care nu sunt greu de obținut dacă aveți internet.

Protecţie: Din păcate, nu există nicio modalitate de a vă proteja de hackingul captcha urmărind atacatorii prin IP, datorită prezenței anonimatorilor și bazelor de date deschise PROXY.

Singura speranță este că serverele PROXY în sine pot impune restricții asupra numărului de IP-uri utilizate de un utilizator și a numărului de conexiuni de la fiecare dintre ele.

Din acest motiv, nu ar trebui să abandonați cu totul verificarea IP. Datorită măsurilor de precauție împotriva bypass-ului captcha, veți putea bloca hackerul la un nivel sau altul, mai devreme sau mai târziu.

Iar concluzia cea mai corectă în această situație ar fi să folosim, pe lângă această metodă de protecție împotriva hacking-ului captcha, și altele care ajută la expunerea hackerului în alt mod.

Introducerea automată a captcha folosind emulatori de acțiune

Dacă pentru a finaliza un CAPTCHA trebuie să efectuați o anumită acțiune (făcând clic pe un buton, mutarea unui glisor etc.), atunci puteți ocoli și captcha în această situație prin emularea acțiunii necesare (făcând clic pe un anumit element de control sau altă acțiune ).

Singura problemă cu care se poate confrunta un hacker în această situație este cum să găsească controlul dorit pe site în mod programatic.

Cea mai ușoară modalitate de a face acest lucru este prin coordonatele sau poziția în raport cu unele elemente statice ale resursei.

Protecţie: Pentru a vă proteja de introducerea automată a captcha în acest caz, trebuie să schimbați constant poziția elementului de control care vă permite să rezolvați CAPTCHA. Aceste. Dacă din trei persoane trebuie să-l alegi doar pe cel a cărui mână este ridicată, în niciun caz nu trebuie să fie așezat constant în același loc.

Ei bine, în cazul altor implementări captcha, când acest lucru nu este posibil (de exemplu, pentru un buton de descărcare sau câmpul „Nu sunt un robot”, care poate avea un singur răspuns corect), este necesar să se folosească alte metode de protecție care poate împiedica roboții să rezolve automat captcha.

Cum să ocoliți captcha folosind tehnologia înaltă

Am analizat punctele slabe ale implementărilor CAPTCHA, care sunt găuri de securitate și sunt cele mai comune în practică. Cu toate acestea, în practică, chiar și cele mai impecabile captcha-uri sunt uneori incapabile să protejeze resursa care le folosește de atacurile hackerilor.

Aceste cazuri de hacking captcha sunt o consecință directă a progresului modern și a nivelului de dezvoltare a tehnologiei informatice, care, după cum știm, nu este întotdeauna folosită în scopuri bune.

Deci, cum să evitați captcha folosind tehnologia modernă?

Ocoliți captcha folosind OCR

OCR (Optical Character Recognition) este o tehnologie de recunoaștere a textului tipărit sau dactilografiat pentru utilizarea ulterioară în format electronic. Cel mai cunoscut software care implementează această tehnologie este Adobe FineReader.

Este folosit cu succes în crearea programelor de introducere automată a captcha care recunosc și rezolvă cu succes captcha-uri grafice, pentru a le finaliza, trebuie să introduceți secvența de caractere afișată în imagine.

Hackerii, desigur, nu folosesc Adobe FineReader (deși pot exista unele 🙂), ci scriu scripturi speciale care, folosind diverse biblioteci gata făcute pentru a lucra cu imagini sau folosind capacitățile limbajului pentru a lucra cu grafică, recunosc captcha și produce o secvență de caractere, reprezentată pe ea.

Am găsit un număr suficient de exemple de astfel de scripturi pe Internet. Principiul muncii lor a fost următorul:

  • curățarea imaginii utilizate în CAPTCHA-urile grafice de diferite zgomote;
  • împărțirea șirului afișat în caractere individuale;
  • compararea fiecăruia dintre ele cu o poză (eșantion) pregătită.

Au fost pregătite mostre grafice ținând cont de diferite fonturi și posibile distorsiuni (înclinări, rotații etc.).

După cum probabil ați ghicit, cel mai important lucru este să compilați o bază de date de imagini cu simboluri în diferite variante, cu care simbolurile captcha vor fi apoi comparate.

Protecţie: de fapt, pentru a deruta programele OCR, se folosesc zgomote enervante și distorsiuni ale caracterelor din imagini, din cauza cărora textul este uneori greu de înțeles chiar și pentru o persoană. Dar, în cazul roboților, și acest lucru funcționează bine, drept urmare algoritmii OCR nu pot produce un rezultat 100% precis, ceea ce are un efect pozitiv asupra securității captcha și a site-urilor care îl folosesc.

Dacă decideți să utilizați captch-uri grafice, pentru care trebuie să introduceți caracterele afișate în imagine, atunci trebuie să urmați următoarele recomandări:

  1. Simbolurile de pe diferite CAPTCHA trebuie să aibă coordonate diferite.
  2. Dacă utilizați efecte de zgomot pentru a crea un fundal, atunci culoarea acestuia trebuie să se potrivească cu culoarea caracterelor, altfel fundalul poate fi îndepărtat cu ușurință prin selectarea caracterelor pentru recunoaștere.
  3. Distanța dintre personaje ar trebui să fie minimă. Puteți chiar să le suprapuneți unul peste altul, dar numai fără fanatism, astfel încât utilizatorii reali să le poată recunoaște.
  4. Utilizați fonturi diferite pentru a face dificilă alegerea celui potrivit pentru recunoaștere.
  5. Distorsionează personajele în toate felurile posibile, schimbă-le stilul și grosimea.
  6. Folosiți biblioteci speciale care vă permit să schimbați caracterele în așa fel încât să fie imposibil să selectați un font pentru recunoașterea software-ului lor. Un exemplu de astfel de soluție este un captcha de la creatorul resursei captcha.ru, care este generat folosind algoritmul de distorsiune a simbolului sub formă de val al autorului.

Toate aceste măsuri fac posibilă complicarea recunoașterii captcha grafice pentru sistemele OCR și reducerea numărului de intrări automate de captcha.

Cum să treci un captcha folosind rețele neuronale

Dacă OCR este o tehnologie destul de veche (primele dispozitive brevetate erau cunoscute la începutul secolului al XX-lea), atunci rețelele neuronale artificiale (ANN) au apărut abia în a doua jumătate a secolului precedent (50 de ani reprezintă o vârstă semnificativă pentru tehnologii: )).

Algoritmii ANN sunt cei care stau la baza inteligenței artificiale (AI), al cărei scop este acela de a crea programe și dispozitive dotate cu funcții creative, i.e. creația omului făcut de om.

În acest moment, AI se dezvoltă constant și în fiecare zi apar noi invenții care au proprietăți nemaivăzute până acum.

La ultima conferință despre rețelele neuronale la care am participat, s-a raportat că Google, care este implicat activ în evoluțiile din acest domeniu, a anunțat deja servicii publice cloud bazate pe ANN-uri.

Folosindu-le poti:

  • recunoaște obiectele din fotografii (de la sexul persoanei înfățișate și marca blugilor acestuia până la ce joc îi aparține poza analizată, cu întreaga ei paletă de culori, numele locației și ce se întâmplă în ea);
  • dispozitive de control cu ​​voce și gesturi;
  • scrieți adnotări pentru videoclipuri în funcție de ceea ce se întâmplă în videoclip etc.

Desigur, cu aceste capacități, crearea unui program pentru introducerea automată a captcha folosind principiile ANN nu este dificilă pentru oamenii cunoscători.

Un astfel de produs a fost dezvoltat de Vicarious în 2014. Rețeaua neuronală dezvoltată de ea este capabilă să recunoască captcha-uri în 90% din cazuri (dați să vă reamintesc că pentru a rezolva clasicul test Turing, care este CAPTCHA, este nevoie de doar 1% din răspunsurile corecte).

Protecţie: Din păcate, este imposibil să te protejezi împotriva acestui tip de atac. Și, din fericire, ANN de la Vicarious nu va fi folosit pentru atacuri direcționate pentru a ocoli captcha pe site-uri web, deoarece... este prea scump pentru sarcini atât de mici (producătorii înșiși spun că este un cluster de multe servere). Domeniul său principal de aplicare este rezolvarea diferitelor probleme din medicină și robotică.

Și spargerea captcha cu ajutorul său este doar o demonstrație a capacităților sale.

Dar timpul trece, tehnologiile care chiar ieri erau scumpe devin din ce în ce mai ieftine, iar timpul nu este departe când produsele ANN vor deveni răspândite. Prin urmare, este foarte posibil ca în viitor să existe boți pentru introducerea automată a captch-urilor, dotați cu inteligență artificială.

Ocoliți captcha folosind serviciile publice

Pe măsură ce sistemele OCR și AI s-au dezvoltat, complexitatea captch-urilor grafice a devenit din ce în ce mai complexă, ceea ce a permis dezvoltatorilor lor să depună eforturi enorme în timpul implementării. Dar tot s-au dovedit a fi zadarnice, pentru că... nu au oferit protecție 100% site-urilor împotriva atacurilor automate.

Prin urmare, Google a luat, după cum mi se pare, calea cea bună și a decis să inventeze pur și simplu un nou standard noCAPTCHA, renunțând la introducerea manuală a caracterelor din imagini.

La dezvoltarea reCAPTCHA noCAPTCHA, am folosit experiența de luptă cu roboții din epoca nașterii captcha și evoluțiile moderne în domeniul inteligenței artificiale, ceea ce ne permite să asigurăm nivelul corespunzător de securitate a site-ului, dar și să nu îngreunăm viața. pentru utilizatorii de internet.

Dar, în ciuda faptului că acest standard a apărut destul de recent, în 2015, a fost deja găsită o modalitate de a-l rezolva automat. Și nu stă în utilizarea inteligenței artificiale.

Totul este mult mai banal - pentru a trece Google reCAPTCHA, trebuie doar să utilizați propriile servicii de recunoaștere a imaginii și a vorbirii Google.

Recunoașterea imaginii în cazul reCAPTCHA v2 (același noCAPTCHA) este puțin probabil să ajute, deoarece pentru sarcinile grafice, trebuie să selectați imagini care conțin obiectele necesare și să nu introduceți simbolurile reprezentate, așa cum a fost cazul în versiunea anterioară.

Dar serviciile serviciului Google Speech Recognition, care este una dintre realizările Google în domeniul inteligenței artificiale, care a fost menționată în metoda anterioară de ocolire a captcha, vor fi foarte utile. Deoarece serviciul oferă un API, crearea unei aplicații pe baza acestuia nu este dificilă.

Protecţie: Din păcate, în această situație, ca și în cea anterioară, în care ANN-urile au fost folosite pentru a ocoli captcha, nu va fi posibilă protejarea împotriva bypass-ului captcha. Singurul punct pozitiv este din nou disponibilitatea relativă a serviciilor adecvate, deoarece... Google vă oferă doar o probă de 300 USD pentru a le folosi.

După finalizarea acestora, serviciile devin plătite. Dar este puțin probabil ca acest lucru să fie o piedică pentru hackeri, deoarece... Ei pot câștiga și mai mult din atacurile care folosesc introducerea automată a captcha.

Așadar, în cazul utilizării serviciilor de recunoaștere a vorbirii și a imaginii pentru a sparge captcha, singura speranță rămâne este vigilența administrației acestora, care poate bloca contul dacă descoperă că este folosit exclusiv în scopurile descrise.

Cum să treci captcha folosind munca umană

Pentru a completa lista modalităților de a ocoli captcha, am decis să iau în considerare una care nu se încadrează în niciuna dintre categoriile enumerate mai sus.

Nu se bazează pe exploatarea vulnerabilităților implementărilor CAPTCHA și pe utilizarea tehnologiilor moderne, ci se bazează pe dorința naturală a omului de a face bani.

Și, în același timp, această metodă ajută la spargerea unui captcha de orice complexitate în 100% din cazuri și, mai mult, să faci acest lucru fără prea mult efort financiar, fizic și moral.

Vorbim despre una dintre metodele moderne de a face bani – care, apropo, a apărut pe vremea când CAPTCHA a devenit greu de recunoscut programatic.

Esența lui este că se creează un serviciu special care se presupune că permite oamenilor să câștige bani (în mare parte mici, care pot fi suficiente doar pentru indieni sau școlari care caută vreo modalitate de a obține bani) prin rezolvarea manuală a captch-urilor.

Și oricine are nevoie de soluțiile lor poate oferi aceste captchas.

Practic, aceștia sunt hackeri care folosesc răspunsurile utilizatorilor reali în propriile lor scopuri egoiste:

  • automatizarea veniturilor;
  • trimiterea de spam;
  • cumpărarea de bilete și bunuri în magazinele online pentru revânzarea mai scumpă;
  • hacking site-uri etc.

Pentru a face procesul mai convenabil, serviciile oferă chiar și un API, datorită căruia captcha poate fi completat online. Aceste. utilizatorul introduce un captcha prin intermediul serviciului, iar în acest moment răspunsul său este folosit pentru a confirma achiziția online.

Mulți meșteri din domeniul programării, de altfel, pot folosi forța umană absolut gratuit. De exemplu, așa își câștigă existența proprietarii de site-uri porno, servicii de partajare de fișiere, torrente și alte resurse dubioase care oferă servicii gratuite.

Se presupune că oferă utilizatorilor conținut valoros gratuit, solicitându-ne să facem un simplu fleac - pentru a confirma că sunteți o persoană și nu un robot, cu ajutorul căruia atacatorii își folosesc produsele în propriile scopuri.

Desigur, nu ne gândim mult timp, pentru că... obținerea oportunității de a descărca filmul mult așteptat la calitate HD absolut gratuit, bifând o casetă din caseta „Nu sunt un robot” este doar un fleac. Între timp, acțiunea dvs. API este utilizată pentru a ocoli captcha pe un alt site terță parte.

De aici morala: amintiți-vă întotdeauna că brânza gratuită este doar într-o capcană de șoareci și nimic nu este gratuit.

Protecţie: Din păcate, astăzi aceasta este cea mai eficientă metodă de a ocoli captcha, împotriva căreia nu există mijloace de protecție. Și nu se va întâmpla până când cei care vor să câștige bănuți prin muncă grea și iubitorii de conținut gratuit nu vor dispărea, adică, cel mai probabil, niciodată.

Ocolirea captcha - concluzii

În timp ce scriam acest articol, am ajuns la concluzia că captcha, în ciuda ideii excelente cu care a fost conceput, și anume, protejarea site-urilor de roboți, a încetat de mult să-și îndeplinească funcțiile.

Dacă vă puteți proteja în continuare de ocolirile automate de captcha care folosesc punctele slabe în implementările CAPTCHA eliminând toate problemele legate de securitatea acestora, atunci este pur și simplu imposibil să vă protejați de introducerea captcha-urilor de către utilizatori reali pentru bani.

Singura grație salvatoare în toată această situație este că ei plătesc bani ridicoli pentru acest tip de muncă și puțini oameni sunt de acord să o facă, așa că amploarea atacurilor cibernetice care utilizează introducerea automată a captcha nu este atât de catastrofală pe cât ar putea fi.

De asemenea, metodele „invincibile” de a ocoli captcha includ tehnologii de inteligență artificială, care s-au dezvoltat activ în ultimii ani.

În același timp, pentru a îngreuna viața hackerilor, captch-urile sunt în mod constant „umflate” cu noi funcționalități, ceea ce face ca finalizarea lor să fie o sarcină dificilă și plictisitoare chiar și pentru utilizatorii reali de site-uri.

Amintiți-vă același Google reCAPTCHA: bifați caseta, dacă Google nu i-a plăcut ceva, selectați pozele necesare (apropo, mai am probleme cu indicatoarele rutiere, pentru că pot finaliza o astfel de sarcină undeva cu 5 încercări). Este multă bătaie de cap să lași un comentariu sau să te înregistrezi pe site? Este mai ușor să găsești o altă resursă...

Dar, în ciuda acestor precauții, captcha nu poate fi numită în prezent o modalitate ideală de a proteja împotriva roboților, pentru care mulți oameni îl critică și încearcă să caute alternative.

În același timp, faptul că CAPTCHA continuă să fie folosit ca tehnologie de securitate cibernetică și este în continuă dezvoltare, inclusiv de către Google, care nu va investi bani în proiecte dubioase, sugerează că această tehnologie va exista de mult timp.

Prin urmare, atunci când dezvoltați și susțineți site-uri existente care folosesc captcha, este necesar să folosiți în mod activ recomandările subliniate pentru a face viața cât mai dificilă posibil hackerilor să-și pirateze software-ul.

Și nu uitați să vă împărtășiți gândurile despre metodele existente de ocolire a captch-urilor și măsurile de protecție împotriva acestora în comentariile de sub articol :)

P.S.: dacă aveți nevoie de un site web sau trebuie să faceți modificări unuia existent, dar nu există timp sau dorință pentru asta, îmi pot oferi serviciile.

Peste 5 ani de experiență dezvoltarea site-ului profesional. Lucrul cu PHP, OpenCart, WordPress, Laravel, Yii, MySQL, PostgreSQL, JavaScript, Reacţiona, unghiularși alte tehnologii de dezvoltare web.

Experienta in dezvoltarea de proiecte la diferite niveluri: pagini de destinație, site-uri web corporative, Magazine online, CRM, portaluri. Inclusiv sprijin și dezvoltare Proiecte HighLoad. Trimiteți aplicațiile prin e-mail [email protected].

Există diferite moduri de a ocoli CAPTCHA-urile care protejează site-urile web. În primul rând, există servicii speciale care folosesc forță de muncă manuală ieftină și oferă să rezolve 1000 de captchas pentru literalmente 1 USD. Ca alternativă, puteți încerca să scrieți un sistem inteligent care, folosind anumiți algoritmi, va efectua recunoașterea în sine. Acesta din urmă poate fi acum implementat folosind un utilitar special.

Rezolvați CAPTCHA

Recunoașterea CAPTCHA este cel mai adesea o sarcină netrivială. Este necesar să se aplice o mulțime de filtre diferite imaginii pentru a elimina distorsiunile și zgomotul, pe care dezvoltatorii doresc să le folosească pentru a consolida protecția. Adesea trebuie să implementați un sistem de învățare bazat pe rețele neuronale (acest lucru, apropo, nu este atât de dificil pe cât ar părea) pentru a obține un rezultat acceptabil în rezolvarea automată a captcha. Pentru a înțelege despre ce vorbesc, este mai bine să deschideți arhiva și să citiți minunatele articole „Cracking CAPTCHA: theory and practice. Să ne dăm seama cum sunt rupte captch-urile” și „Să ne uităm și să recunoaștem. Hacking filtre Captcha" de la numerele #135 și, respectiv, #126. Astăzi vreau să vă povestesc despre dezvoltarea TesserCap, pe care autorul îl numește solutor CAPTCHA universal. Un lucru curios, orice ar spune cineva.

Prima privire la TesserCap

Ce a făcut autorul programului? El a analizat modul în care problema rezolvării automate a CAPTCHA este de obicei abordată și a încercat să rezumă această experiență într-un singur instrument. Autorul a observat că pentru a elimina zgomotul dintr-o imagine, adică pentru a rezolva cea mai dificilă problemă în recunoașterea captch-urilor, se folosesc cel mai des aceleași filtre. Se pare că dacă implementați un instrument convenabil care vă permite să aplicați filtre imaginilor fără transformări matematice complexe și să îl combinați cu un sistem OCR pentru recunoașterea textului, puteți obține un program complet funcțional. Acesta este, de fapt, ceea ce a făcut Gursev Singh Kalra de la McAfee. De ce a fost acest lucru necesar? Autorul utilitarului a decis să verifice în acest fel cât de sigure sunt captch-urile de resurse mari. Pentru testare, am selectat acele site-uri de Internet care sunt cele mai vizitate conform cunoscutului serviciu de statistică. Candidații pentru participarea la testare au inclus monștri precum Wikipedia, eBay și furnizorul de captcha reCaptcha.

Dacă luăm în considerare în termeni generali principiul de funcționare a programului, este destul de simplu. Captcha-ul original intră în sistemul de preprocesare a imaginii, care curăță captcha-ul de orice zgomot și distorsiune și transferă imaginea rezultată printr-un transportor către sistemul OCR, care încearcă să recunoască textul de pe acesta. TesserCap are o interfață grafică interactivă și are următoarele proprietăți:

  1. Are un sistem universal de preprocesare a imaginii care poate fi configurat pentru fiecare captcha individual.
  2. Include motorul de recunoaștere Tesseract, care extrage text dintr-o imagine CAPTCHA analizată și pregătită.
  3. Sprijină utilizarea diferitelor codificări în sistemul de recunoaștere.

Cred că sensul general este clar, așa că vă sugerez să vedeți cum arată. Versatilitatea utilitarului nu a putut decât să ducă la complicarea interfeței sale, astfel încât fereastra programului poate duce la o ușoară stupoare. Așadar, înainte de a trece direct la recunoașterea captch-urilor, vă sugerez să înțelegeți interfața și funcționalitatea încorporată.


Preprocesarea și extragerea imaginii
text din captcha

Despre

Nu ne-am putut abține să nu spunem măcar câteva cuvinte despre autorul minunatului utilitar TesserCap. Numele lui este Gursev Singh Kalra. Este consultant principal pentru divizia de servicii profesionale a Foundstone, parte a McAfee. Gursev a vorbit la conferințe precum ToorCon, NullCon și ClubHack. El este autorul instrumentelor TesserCap și SSLSmart. În plus, a dezvoltat mai multe instrumente pentru nevoile interne ale companiei. Limbajele de programare preferate sunt Ruby, Ruby on Rails și C#. Divizia de servicii profesionale a Foundstone®, unde lucrează, oferă organizațiilor servicii de expertiză și instruire pentru a se asigura că activele lor sunt protejate în mod consecvent și eficient de cele mai dificile amenințări. Echipa de Servicii profesionale este formată din experți și dezvoltatori recunoscuți în securitate cu o vastă experiență de lucru cu corporații internaționale și agenții guvernamentale.

Interfață. Fila principală

După lansarea programului, ni se prezintă o fereastră cu trei file: Main, Options, Image Preprocessing. Fila principală conține controale care sunt folosite pentru a porni și opri testul de imagine CAPTCHA, pentru a genera statistici de testare (câte sunt ghicite și câte nu), pentru a naviga și a selecta o imagine pentru preprocesare. Câmpul de introducere a adresei URL (controlul #1) trebuie să conțină adresa URL exactă pe care o folosește aplicația web pentru a prelua captch-urile. URL-ul poate fi obținut făcând clic pe partea dreaptă a imaginii CAPTCHA, copierea sau vizualizarea codului paginii și extragerea adresei URL din atributul src al etichetei de imagine ..site/common/rateit/captcha.asp?. Lângă linia de adresă există un element care specifică numărul de captchas care trebuie descărcate pentru testare. Deoarece aplicația poate afișa doar 12 imagini simultan, oferă controale pentru navigarea pagină cu pagină a captch-urilor descărcate. Astfel, în timpul testării la scară largă, vom putea derula prin captch-urile descărcate și vom vedea rezultatele recunoașterii lor. Butoanele Start și Stop pornesc și, respectiv, opresc testarea. După testare, trebuie să evaluați rezultatele recunoașterii imaginii, marcând fiecare dintre ele ca fiind corecte sau incorecte. Ei bine, ultima funcție, cea mai semnificativă, servește la transferul oricărei imagini într-un sistem de preprocesare, în care este setat un filtru care elimină zgomotul și distorsiunea din imagine. Pentru a trimite o imagine către sistemul de preprocesare, trebuie să faceți clic dreapta pe imaginea dorită și să selectați Send To Image Preprocessor din meniul contextual.

Interfață. Fila Opțiuni

Fila Opțiuni conține diverse controale pentru configurarea TesserCap. Aici puteți selecta un sistem OCR, setați parametrii proxy web, activați redirecționarea și preprocesarea imaginii, adăugați anteturi HTTP personalizate și, de asemenea, specificați intervalul de caractere pentru sistemul de recunoaștere: numere, litere mici, litere mari, caractere speciale.

Acum despre fiecare opțiune în detaliu. În primul rând, puteți alege un sistem OCR. În mod implicit, este disponibil doar unul - Tesseract-ORC, așa că nu trebuie să vă deranjați cu alegerea aici. O altă caracteristică foarte interesantă a programului este selectarea unei game de caractere. Să luăm, de exemplu, un captcha de pe site - este clar că nu conține o singură literă, ci este format doar din cifre. Deci, de ce avem nevoie de caractere suplimentare care nu vor decât să crească probabilitatea unei recunoașteri incorecte? Dar dacă alegi majuscule? Programul va putea recunoaște un captcha format din majuscule din orice limbă? Nu, nu poate. Programul preia lista de caractere utilizate pentru recunoaștere din fișierele de configurare aflate în \Program Files\Foundstone Free Tools\TesserCap 1.0\tessdata\configs. Permiteți-mi să vă explic cu un exemplu: dacă am selectat opțiunile Numerics și Minuscule, programul va accesa fișierul lownumeric, începând cu parametrul tessedit char lista albă. Aceasta este urmată de o listă de caractere care vor fi folosite pentru a rezolva captcha. În mod implicit, fișierele conțin doar litere ale alfabetului latin, așa că pentru a recunoaște alfabetul chirilic trebuie să înlocuiți sau să completați lista de caractere.

Acum câteva detalii despre ce este necesar câmpul Http Request Headers. De exemplu, pe unele site-uri web trebuie să vă autentificați pentru a vedea captcha. Pentru ca TesserCap să acceseze captcha, programul trebuie să treacă anteturi precum Accept, Cookie și Referrer, etc. în cererea HTTP Folosind un proxy web (Fiddler, Burp, Charles, WebScarab, Paros etc.), dvs poate intercepta anteturile cererii trimise și le introduce în câmpul de intrare Http Request Headers. O altă opțiune care va fi cu siguranță utilă este Urmăriți redirecționările. Chestia este că TesserCap nu urmează redirecționările în mod implicit. Dacă adresa URL de testare trebuie să urmeze o redirecționare pentru a obține imaginea, trebuie să selectați această opțiune.

Ei bine, a mai rămas o ultimă opțiune, activarea/dezactivarea mecanismului de preprocesare a imaginii, pe care o vom lua în considerare în continuare. În mod implicit, preprocesarea imaginii este dezactivată. Utilizatorii configurează mai întâi filtrele de preprocesare a imaginii în funcție de imaginile CAPTCHA testate și apoi activează acest modul. Toate imaginile CAPTCHA încărcate după activarea opțiunii Enable Image Preprocessing sunt preprocesate și apoi trimise la sistemul Tesseract OCR pentru extragerea textului.

Interfață. Fila Preprocesare imagine

Ei bine, am ajuns la cea mai interesantă filă. Aici sunt configurate filtrele pentru a elimina diverse zgomote și neclarități din captchas, care încearcă să complice cât mai mult sarcina sistemului de recunoaștere. Procesul de instalare a unui filtru universal este extrem de simplu și constă din nouă pași. La fiecare etapă a preprocesării imaginii, sunt afișate modificările aduse imaginii. În plus, pagina are o componentă de verificare care vă permite să evaluați corectitudinea recunoașterii captcha atunci când este aplicat un filtru. Să ne uităm la fiecare etapă în detaliu.

Etapa 1. Inversarea culorii

În această etapă, culorile pixelilor pentru imaginile CAPTCHA sunt inversate. Codul de mai jos demonstrează cum se întâmplă acest lucru:

Pentru (fiecare pixel din CAPTCHA) (dacă (invertRed este adevărat) roșu nou = 255 – roșu curent dacă (invertBlue este adevărat) albastru nou = 255 – albastru curent dacă (invertVerde este adevărat) verde nou = 255 – verde curent)

Inversarea uneia sau mai multor culori deschide adesea noi posibilități de validare a imaginii CAPTCHA testată.

Etapa 2. Schimbarea culorii

La acest pas, puteți modifica componentele de culoare pentru toți pixelii din imagine. Fiecare câmp numeric poate conține 257 (de la −1 la 255) valori posibile. Pentru componentele RGB ale fiecărui pixel, în funcție de valoarea din câmp, se efectuează următoarele acțiuni:

  1. Dacă valoarea este -1, componenta de culoare corespunzătoare nu se modifică.
  2. Dacă valoarea nu este -1, toate componentele găsite ale culorii specificate (roșu, verde sau albastru) se modifică în funcție de valoarea introdusă în câmpuri. O valoare de 0 elimină componenta, o valoare de 255 stabilește intensitatea maximă a acesteia etc.

Etapa 3: tonuri de gri (scale de gri)

În al treilea pas, toate imaginile sunt convertite în imagini în tonuri de gri. Acesta este singurul pas obligatoriu în conversia imaginii care nu poate fi omis. În funcție de butonul selectat, se efectuează una dintre următoarele acțiuni legate de componenta de culoare a fiecărui pixel:

  1. Medie -> (Roșu + Verde + Albastru)/3.
  2. Om -> (0,21 * Roșu + 0,71 * Verde + 0,07 * Albastru).
  3. Media componentelor de culoare minime și maxime -> (Minim (Roșu + Verde + Albastru) + Maxim (Roșu + Verde + Albastru))/2.
  4. Minim -> Minim (Roșu + Verde + Albastru).
  5. Maxim -> Maxim (Roșu + Verde + Albastru).

În funcție de intensitatea și distribuția componentei de culoare a CAPTCHA, oricare dintre aceste filtre poate îmbunătăți imaginea extrasă pentru procesare ulterioară.


Etapa 4: Netezire și ascuțire

Pentru a face mai dificilă extragerea textului din imaginile CAPTCHA, li se adaugă zgomot sub formă de puncte cu un singur și multi-pixel, linii străine și distorsiuni spațiale. Când o imagine este netezită, zgomotul aleatoriu crește, care este apoi eliminat folosind filtrele Bucket sau Cutoff. În câmpul numeric Passes, ar trebui să indicați de câte ori trebuie să aplicați masca de imagine corespunzătoare înainte de a trece la pasul următor. Să ne uităm la componentele filtrului anti-aliasing și ascuțire. Sunt disponibile două tipuri de măști de imagine:

  1. Măști fixe. În mod implicit, TesserCap are șase dintre cele mai populare măști de imagine. Aceste măști pot netezi imaginea sau o pot clarifica (transformarea Laplace). Modificările sunt afișate imediat după selectarea unei măști folosind butoanele corespunzătoare.
  2. Măști de imagine personalizate. De asemenea, utilizatorul poate configura măști personalizate de procesare a imaginilor introducând valori în câmpurile numerice și făcând clic pe butonul Salvare masca. dacă suma coeficienților din aceste ferestre este mai mică decât zero, se generează o eroare și nu se aplică masca. Dacă selectați o mască fixă, nu este necesar să utilizați butonul Salvare mască.

Etapa 5. Introducerea nuanțelor de gri

În această etapă a procesării imaginii, pixelii săi pot fi colorați într-o gamă largă de nuanțe de gri. Acest filtru afișează distribuția în tonuri de gri a 20 de găleți/domeni. Procentul de pixeli colorați în nuanțe de gri în intervalul de la 0 la 12 este specificat în grupul 0, procentul de pixeli colorați în nuanțe de gri în intervalul de la 13 la 25 este specificat în grupul 1 etc. Utilizatorul poate Alege una dintre următoarele pentru fiecare interval de valori în tonuri de gri:

  1. Lasă așa cum este.
  2. Înlocuiți cu alb.
  3. Înlocuiți cu negru.

Cu aceste opțiuni, puteți controla diferite intervale de tonuri de gri și puteți reduce/elimina zgomotul schimbând tonul de gri în alb sau negru.

Etapa 6. Stabilirea limitei

Acest filtru grafică dependența valorii nivelului de gri de frecvența de apariție și vă solicită să selectați o limită. Principiul de funcționare al filtrului de tăiere este prezentat mai jos în pseudo-cod:

Dacă (valoarea în tonuri de gri a pixelului<= Cutoff) pixel grayscale value = (0 OR 255) ->în funcție de opțiunea selectată (<= или =>: Setați fiecare pixel cu valoare<=/=>Prag la 0. Rămânând la 255)

Graficul arată distribuția detaliată a pixelilor CAPTCHA în funcție de culoare și ajută la eliminarea zgomotului folosind decuparea la nivel de gri.

Etapa 7: Tocare

După aplicarea filtrelor de netezire, decupare, găleată și alte filtre, imaginile CAPTCHA pot fi în continuare zgomotoase cu puncte cu un singur pixel sau cu mai mulți pixeli, linii parazite și artefacte spațiale. Principiul filtrului de tăiere este următorul: dacă numărul de pixeli adiacenți colorați într-o anumită nuanță de gri este mai mic decât valoarea din câmpul numeric, filtrul de tăiere le atribuie o valoare de 0 (negru) sau 255 (alb). la alegerea utilizatorului. În acest caz, CAPTCHA este analizat atât pe orizontală, cât și pe verticală.

Pasul 8: Modificarea lățimii chenarului

Potrivit autorului utilitarului, în timpul cercetării și dezvoltării inițiale a TesserCap, el a remarcat în mod repetat că atunci când imaginile CAPTCHA au o linie groasă de margine și culoarea acesteia este diferită de fundalul CAPTCHA principal, unele sisteme OCR nu pot recunoaște textul. Acest filtru este conceput pentru a procesa liniile de delimitare și a le schimba. Liniile de delimitare cu o lățime specificată în câmpul numeric sunt colorate în alb sau negru, la alegerea utilizatorului.

Pasul 9: inversarea gri

Acest filtru trece prin fiecare pixel și își înlocuiește valoarea de nivel de gri cu una nouă, așa cum se arată în pseudocodul de mai jos. Inversarea gri este efectuată pentru a ajusta imaginea la setările de culoare ale sistemului OCR.

Pentru (fiecare pixel din CAPTCHA) o nouă valoare în tonuri de gri = 255 – valoarea actuală în tonuri de gri

Pasul 10: Verificarea recunoașterii captcha

Scopul acestei etape este de a transfera imaginea CAPTCHA preprocesată în sistemul OCR pentru recunoaștere. Butonul Rezolvare preia imaginea după filtrul de inversare în tonuri de gri, o trimite sistemului OCR pentru a extrage textul și afișează textul returnat într-o GUI. Dacă textul recunoscut se potrivește cu textul de pe captcha, înseamnă că am setat corect filtrul pentru preprocesare. Acum puteți merge la fila de opțiuni și puteți activa opțiunea Activare preprocesare a imaginii pentru a procesa toate captch-urile descărcate ulterioare.

Recunoaște captch-urile

Ei bine, poate că am luat în considerare toate opțiunile acestui utilitar și acum ar fi bine să testăm niște captcha pentru putere.


Rezultatul site-ului de analiză captcha cu preliminar
procesarea imaginilor. Judecând după rezultate, filtrul
nu l-a putut găsi

Deci, haideți să lansăm utilitarul și să mergem pe site-ul revistei. Vedem o listă cu ultimele știri, mergeți la prima pe care o întâlnim și derulați până la locul unde puteți lăsa comentariul. Da, nu este atât de ușor să adăugați un comentariu (desigur, altfel ar fi trimis totul spam cu mult timp în urmă) - trebuie să introduceți un captcha. Ei bine, să verificăm dacă acest lucru poate fi automatizat. Copiați adresa URL a imaginii și inserați-o în bara de adrese TesserCap. Indicăm că trebuie să descărcați 12 captch-uri și să faceți clic pe Start. Programul a încărcat ascultător 12 imagini și a încercat să le recunoască. Din păcate, toate captch-urile fie nu au fost recunoscute, după cum reiese din inscripția -Failed- de sub ele, fie au fost recunoscute incorect. În general, acest lucru nu este surprinzător, deoarece zgomotul străin și distorsiunea nu au fost eliminate. Asta vom face acum. Faceți clic dreapta pe una dintre cele 12 imagini încărcate și trimiteți-o către sistemul de preprocesare (Send To Image Preprocessor). După ce am examinat cu atenție toate cele 12 captch-uri, vedem că acestea conțin doar numere, așa că mergem la fila de opțiuni și indicăm că trebuie recunoscute doar numerele (Setul de caractere = Numeric). Acum puteți accesa fila Preprocesare imagine pentru a configura filtre. Voi spune imediat că după ce m-am jucat cu primele trei filtre („Color Inversion”, „Color Change”, „Gray Gradation”) nu am văzut niciun efect pozitiv, așa că am lăsat totul acolo implicit. Am ales Smooth Mask 2 și am setat numărul de treceri la una. Am omis filtrul de găleți în tonuri de gri și am trecut direct la setările de tăiere. Am ales valoarea 154 și am indicat că acei pixeli care sunt mai mici să fie setați la 0, iar cei mai mari să fie setați la 255. Pentru a scăpa de pixelii rămași, am activat tăierea și am schimbat lățimea chenarului la 10. Nu avea niciun rost să activez ultimul filtru, așa că am dat imediat clic pe Rezolvare.

Pe captcha aveam numărul 714945, dar programul l-a recunoscut ca fiind 711435. Acest lucru, după cum puteți vedea, este complet incorect. Până la urmă, oricât m-aș strădui, nu am reușit să recunosc corect captcha. A trebuit să experimentez cu pastebin.com, pe care l-am putut recunoaște fără probleme. Dar dacă sunteți mai harnic și mai răbdător și reușiți să obțineți captch-urile recunoscute corect de pe site, atunci accesați imediat fila de opțiuni și activați Activați preprocesarea imaginii. Apoi accesați Main și, făcând clic pe Start, descărcați un nou lot de captchas, care va fi acum preprocesat de filtrul dvs. După rularea programului, marcați captch-urile recunoscute corect/incorect (butoanele Marcare ca corecte/Marcați ca incorecte). De acum înainte, puteți vizualiza statistici rezumate privind recunoașterea utilizând Afișare statistici. În general, acesta este un fel de raport privind securitatea unui anumit CAPTCHA. Dacă există o întrebare despre alegerea uneia sau a altei soluții, atunci cu ajutorul TesserCap este foarte posibil să vă efectuați propria testare.

Rezultatul verificării CAPTCHA pe site-uri populare

Site-ul web și procentul de captch-uri recunoscute:

  • Wikipedia > 20–30%
  • Ebay > 20–30%
  • reddit.com > 20–30%
  • CNBC > 50%
  • foodnetwork.com > 80–90%
  • dailymail.co.uk > 30%
  • megaupload.com > 80%
  • pastebin.com > 70–80%
  • cavenue.com > 80%

Concluzie

Imaginile CAPTCHA sunt unul dintre cele mai eficiente mecanisme pentru protejarea aplicațiilor web de completarea automată a formularelor. Cu toate acestea, captcha-urile slabe vor putea proteja împotriva roboților aleatori și nu vor rezista încercărilor direcționate de a le rezolva. La fel ca algoritmii criptografici, imaginile CAPTCHA, care sunt testate temeinic și oferă un nivel ridicat de securitate, sunt cea mai bună modalitate de a vă proteja. Pe baza statisticilor oferite de autorul programului, am ales reCaptcha pentru proiectele mele si il voi recomanda tuturor prietenilor mei – s-a dovedit a fi cel mai rezistent dintre cei testati. În orice caz, nu uitați că există multe servicii pe Internet care oferă o soluție CAPTCHA semi-automatizată. Printr-un API special, treci o imagine serviciului, iar după scurt timp acesta returnează o soluție. O persoană reală (de exemplu, din China) rezolvă captcha și este plătită cu un ban pentru asta. Nu mai există nicio protecție aici. 🙂

Instrucțiuni pentru recunoașterea corectă a captch-urilor pe serviciul site-ului web

ReCaptcha V2 Nou
Foarte popular în ultima vreme, este format din 9 mini-poze, dintre care trebuie să selectezi 2-4 poze date. Pozele pe care trebuie să le alegeți sunt indicate fie printr-un exemplu de imagine, fie printr-un text. Ca răspuns la un astfel de captcha, trebuie să introduceți numerele imaginilor pe care doriți să le selectați. Numerele sunt introduse fără spații sau virgule. Dacă nu există numere pe imagini, atunci acestea sunt numărate de la stânga la dreapta, de sus în jos. Ca aceasta:
1 2 3
4 5 6
7 8 9

captcha corecta
răspuns
descriere
13 in dreapta este o proba, varza. In pozele numerotate 1 si 3 vedem varza. Ca răspuns la captcha scriem 13
58 În dreapta este o farfurie cu spaghete. Această poză corespunde pozelor numerotate 5 și 8. În poza cu numărul 3 sunt aceleași paste, dar ravioli, nu spaghete.
239 Nu există nicio mostră, doar text care spune ce imagini trebuie să alegeți. Imaginile în sine nu sunt numerotate, așa că folosim instrucțiunile de mai sus pentru a înțelege ce imagine corespunde numărului corect
45 La început ați putea crede că răspunsul corect este 47. Dar în poza 7 nu există un semn, ci doar un semn. Și a mai rămas doar a 4-a poză. Dar trebuie să existe cel puțin 2 imagini potrivite. Aruncăm o privire mai atentă și vedem în a 5-a imagine un semn fotografiat din verso. răspuns corect 45
159
456 Instrucțiunile sunt doar în limba engleză, dar există o imagine în stânga care explică că trebuie să selectați indicatoarele rutiere.
18 Exemplul prezentat arată ouă. Sunt aceleași în pozele 1 și 8, deși au fost deja curățate și tăiate. Răspunsul corect este 18
25 Exemplul prezentat este o plăcintă. În imaginile 2 și 5 vedem plăcinte și răspunsul 25.
12 Webmasterul care a trimis captcha a numerotat imaginile după propriul său principiu. În acest exemplu, folosim numerotarea acesteia și indicăm că trebuie să selectați 1 și 2 imagini
356 Acest webmaster numerotează imaginile în ordinea corectă, dar a început să numere nu de la unu, ci de la zero.

ReCaptcha v2 cu indicatoare rutiere și indicatoare stradale

Vom acorda o atenție deosebită captchas-urilor care prezintă indicatoare rutiere sau indicatoare stradale. Un indicator stradal nu este un indicator rutier.

captcha corecta
răspuns
descriere
1239 Numele străzii = indicatoare stradale
Străzile sunt întotdeauna scrise în alb pe un fundal verde într-un singur rând. Imaginea 7 arată un semn rutier.
1348 E simplu aici
78

Indicatoare stradale = indicatoare rutiere

Totul este simplu în acest captcha

278 În imaginea #7, semnul nu se află pe un stâlp, ca semnele obișnuite, ci pe o oprire denivelată. Totuși, acesta este un semn rutier.
36 Un semn de stație de autobuz este, de asemenea, un semn rutier.
1248 Fiți atenți, acest captcha ne cere să indicăm semnele stradale.
2479 Imaginea #1 arată un semn, nu un nume de stradă.
1236 Imaginea #5 arată un semn, nu un nume de stradă. În imaginea nr. 2 numele străzii nu este vizibil, dar puteți ghici că este acolo.

SolveMedia
Acest captcha conține fraze mici standard în limba engleză, ceea ce vă ajută să le introduceți mai repede și să învățați engleza.

captcha corecta
răspuns
descriere
caseta video captcha simplu, introdus fără probleme
și dacă? Vă rugăm să rețineți - trebuie introduse și semnele de punctuație
Când, unde? Atât o virgulă, cât și un semn de întrebare trebuie să fie indicate în răspuns.

imi plac oamenii În cuvântul LIKE, prima literă este greu de deslușit, dar dacă te uiți la întreaga frază, este ușor de înțeles care este litera.
Îmi plac oamenii - iubesc oamenii

pe acoperiș Ai putea crede că prima literă din acest captcha este P și pur și simplu s-au lipit de ea două bastoane. Dar cuvântul POOFTOP nu există, iar ROOFTOP este ceva care se instalează pe acoperiș La urma urmei, puțini oameni știu toate aceste cuvinte, este foarte ușor să greșești.

primul post! Prima literă este ascunsă, dar privind întregul cuvânt, puteți ghici ce este scris FIRST acolo
Dar uneori dai peste unele pe care nu le poți desluși deloc. În acest caz, trebuie să faceți clic pe „Nu pot să înțeleg”

    +1 În așteptare

    Dacă formularul de solicitare de asistență conține un captcha Google și modul ascuns este activat în setările captcha din magazin, formularul nu funcționează (se scrie eroarea „Acest câmp este obligatoriu”, deși toate câmpurile sunt completate. Pentru a corecta temporar. situatia...

    Captcha nu este afișat

    Am descoperit că atunci când folosești extensia PHP ImageMagick, captcha-ul din formularul de feedback ($wa->block("site.send_email_form")) nu funcționează. Imediat ce am trecut la GD, captcha a funcționat. Este ceva în neregulă cu mine sau este mai bine...

    Există o soluție

    Spune că captcha a fost introdus incorect. Captcha standard oferă același lucru, am încercat să șterg conținutul folderului wa-cache, dar nu a dat niciun rezultat. înscriere/

    Contactați dezvoltatorul temei dvs. de design. În codul sursă al paginii, captcha-ul este solicitat de două ori, a doua oară folosind butonul Feedback din partea de jos a paginii. Nu este vizibil acolo, dar este în codul sursă.

    Există o soluție

    Adaug un captcha în formularul de flux (modul de suport), dar nu este afișat pe site folosind șablonul stoc..

    Există o soluție

    Bună ziua! În urmă cu ceva timp am observat că captcha de pe site nu funcționa corect. Indiferent de codul pe care îl introduceți în acest câmp (cod corect sau cod incorect), captcha-ul nu trece testul... și...

    ($wa->storage(["captcha", $wa->app()], "")) de ce astfel de dansuri cu tamburine?)) pur și simplu nu puteți introduce ($wa->captcha()) în formular . problemă poate dacă încercați să folosiți mai multe captch-uri pe o pagină - soluția a apărut pe forum... poate un plugin... sau poate un cache... puteți lua mult timp să ghiciți :)

    Există o soluție

    În legătură cu cea mai recentă actualizare la versiunea 1.8.4.225, care a rezolvat unele probleme cu reCAPTCHA și actualizarea rapidă ulterioară la versiunea 1.8.5.226, a apărut următoarea problemă. Dacă îl activați în magazin în Setări -> Finalizare, afișați...

    Între timp, au lansat ceva nou. Sper că nu s-a rupt nimic nou. Îl voi pune pe o găzduire de testare pentru moment. :)))

    +1 Corectat

    Când adăugați o recenzie cu un captcha invizibil personalizat de la Google, captcha-ul trece prima dată când trimiteți formularul, dar dacă au existat erori în formular (câmpurile nu au fost completate), atunci când trimiteți formularul a doua oară și următoarele , captcha nu trece...

    +1

    Și indiferent de ce se întâmplă, introducerea ORICE cod captcha este ÎNTOTDEAUNA incorectă.