Captcha opcijas. ReCAPTCHA instalēšana un atslēgu iegūšana. Kādi captcha veidi pastāv

Mēs veltām šo materiālu tādam svarīgam katra satīta elementam kā captcha. Kā zināms, bez captcha vietnes viegli piepildītos ar surogātpastu, būtu automātiska nepārtraukta reģistrācija un tas būtu Dievs zina, kas. Par laimi tika izgudrots captcha, kas organizē vēl vienu slieksni, lai pārbaudītu "cilvēcību".

Kas ir captcha? Captcha ir īpašs attēls ar simboliem, kas ir pakļauti dažāda veida kropļojumiem, bet ir atpazīstami cilvēkiem un slikti saprotami (vai vispār nesaprotami) robotam.

Jo grūtāk ir atrisināt captcha, jo labāk. robotam būs gandrīz neiespējami to noteikt, izmantojot savus algoritmus.

Šajā rakstā mēs apskatīsim captchas un dažādas captchas izmantošanas iespējas mūsu vietnē.

Captcha tiek izmantota dažādos veidos, piemēram, reģistrējoties, kaut ko pērkot utt. Turklāt, ja vietnes skripti konstatē aizdomīgas darbības, tās var parādīt citās lapās, piemēram, autorizācijas lapā. Patiešām, es domāju, ka daudzi ir pamanījuši, ka, ja vietnē pēc kārtas ievadāt pieteikšanās paroles pāri, tam tiek pievienota arī captcha, kas palielina konta drošību pret uzlaušanu.

Kādu captcha izmantot vietnei?

1. iespēja Recaptcha

Arhīvā jūs atradīsit gatavu captcha darba versiju ar iespēju pielāgot tās darbu. Lai konfigurētu, atveriet failu capconf.php, un tad jūs pats to izdomāsit, jo pie katra parametra ir apraksts. Saknes fails index.php ir captcha izmantošanas piemērs, palaidiet to un pārbaudiet pats.

Cik gadus Habrs ir bijis - tik daudzus gadus tajā regulāri parādās ziņas par nākamo captcha - vai tas ir attēlu ģenerēšanas skripts, jauna captcha ideja ar kaķiem un tamlīdzīgi. Jaunākais piemērs cilvēkam, kurš ne visai saprot, kā jādarbojas captcha (skat. ieraksta tekstu un pēdējos komentārus), bet tajā pašā laikā dalās savos maldīgos priekšstatos ar sabiedrību. Rodas sajūta, ka captcha tāds ir terra incognita lielākajai daļai izstrādātāju - gan tiem, kas to vienkārši pieskrūvē citā veidlapā, cerot, ka tas darbosies no kastes, gan tiem, kas izdomā tādas captchas kā tās, kurās no vairākiem fotoattēliem jāizvēlas attēls ar kaķi .

Rakstā ir ietverta noderīga informācija tiem, kuri savā serverī izmanto captcha, nevis paļaujas uz trešās puses pakalpojumu, piemēram, reCaptcha.

Un iesākumam - ja domājat, ka šāda captcha pārbaude darbosies:
if($_POST["captcha"] == $_SESSION["captcha"]) return true; (gadījuma izpēte)
tad tu dziļi maldies.

Captcha

Pēc definīcijas captcha ir automatizēts publisks Tjūringa tests (tests, ko var izturēt cilvēks, bet ne dators). Rakstā es aplūkošu captcha īpašības, izmantojot tās visizplatītākā veida piemēru - attēlā redzamo tekstu, lai gan gandrīz viss rakstītais ir vienlīdz piemērojams jebkura veida captcha.

Divas galvenās captcha īpašības

Jebkurai captcha ir jābūt diviem rekvizītiem, bez kuriem tā nedarbosies:

Izturība pret atzīšanu- īpašums, kas aizsargā captcha no algoritma atpazīšanas, piemēram, teksta atpazīšanas sistēma. Nodrošina, ka cilvēks var izlasīt attēlā redzamo tekstu, bet dators nevar.
Pretpiemērs: phpBB 2.x forumu standarta captcha nebija šāda īpašība - relatīvi vieglas atpazīšanas dēļ parādījās skripti, kas sūtīja surogātpastu visos forumos pēc kārtas, liekot tīmekļa pārziņiem mainīt captcha uz stabilāku. .

Uzminiet pretestību- captcha īpašums, kas neļauj uzminēt tā vērtību nelielā mēģinājumu skaitā (mazāk nekā 1000). Ja iespējamo captcha vērtību kopa ir maza, programmai nebūs grūti to uzminēt, atlasot, nevis atpazīstot.
Anti-piemērs: aritmētiskā captcha, piemēram, "1+2" ​​(skaitļu uzskaitīšana no 1 līdz 20 drīz dos rezultātu).
Pretpiemērs: izvēlieties no vairākiem attēliem to, kurā attēlots kaķis.

Notiek captcha pārbaude

Pārbaudāmajai vērtībai ir jābūt saglabātai serverī, nevis kopā ar attēlu nosūtīta uz pārlūkprogrammu. Lai atbilstu apmeklētājam un pareizajai captcha vērtībai, jums ir jāizmanto atslēga, kas tiek pārsūtīta kopā ar captcha (sesijas ID, captcha numurs utt.).
Pretpiemērs: ja jūs nododat pašu captcha un tā verifikācijas vērtību (ieskaitot šifrētu), tad pietiek, lai persona vienreiz atpazītu šādu captcha un pēc tam izmantotu kombināciju “atbilde” - “vērtība, kas jāpārbauda” skripts (izmantojot saiti ziņas sākumā, tikai tādā gadījumā)

Pirms atbildes pārbaudes - jums jāpārliecinās, ka tā nav tukša. Pretējā gadījumā uzbrucējs var nodot tukšu vērtību, neaugšupielādējot attēlu vai neizdzēšot pašreizējās sesijas identifikatoru, un nodot captcha, jo tiks salīdzinātas divas tukšas virknes (PHP neesoša vērtība ir vienāda ar tukšu virkni).
Anti-piemērs: kods, kuru jau minēju if($_POST["captcha"] == $_SESSION["captcha"]) return true;
Turklāt šo kodu uzrakstīja pieredzējis programmētājs.

Pēc pārbaudes ir jāizdzēš saglabātā captcha vērtība. Ja tas nav izdarīts, uzbrucējs var atkārtoti izmantot šo vērtību neierobežotu skaitu reižu. Jā, kad tiek atjaunināta lapa ar formu, tiek atjaunināta arī captcha (vai nu tad, kad tiek ģenerēta forma, vai kad tiek ģenerēts attēls), bet skripts var neielādēt formu atkārtoti (jāpiemin, ka tas nav aktuāli ja vietne veidlapām izmanto vienreizējos csrf marķierus).
Anti-piemērs: hipotētiska pieteikšanās forma, kurā pietiek vienreiz pareizi ievadīt captcha un pēc tam uzminēt paroli, izmantojot skriptu, izvairoties no captcha reģenerācijas serverī.

ložu necaurlaidīgs captcha

Aizsardzība pret pārslodzi. Ja jūsu captcha ir izturīgs pret atpazīšanu, bet ne pārāk izturīgs pret brutālu spēku (piemēram, uz tā ir jānolasa tikai 3-4 cipari), ieteicams ierobežot nepareizo atbilžu skaitu “no viena IP” / “par viena pieteikšanās” / utt. Šādi ierobežojumi ir jāpārbauda PIRMS pašas captcha pārbaudes (tas ir, pat pareizi ievadīta captcha gadījumā, ja ir ierobežojums, tas nav jāuzskata par izturētu), pretējā gadījumā tas netraucēs uzskaitīt.

DoS aizsardzība.Ģenerējot captcha savā serverī, jums jāsaprot, ka tas ir ērts vektors DoS uzbrukumu veikšanai (ko atšķirībā no DDoS var organizēt jebkurš students). Aizsardzības nolūkos varat ierobežot captcha ģenerēšanas skaitu vienam IP, captcha kešatmiņu utt.

Atzīšanas aizsardzība. Ja izvēlaties captcha vai pēkšņi grasāties to rakstīt pats, ir ieteicams saprast, kura captcha ir vairāk aizsargāta no atpazīšanas. Ir gatavi universālie captcha atpazīšanas skripti, kas darbojas pēc OCR principa, un, ja surogātpasta izplatītāji interesējas par jūsu vietni, pastāv risks, ka viņi izmantos / uzrakstīs skriptu tieši jūsu captcha. Tomēr pēdējais vairāk attiecas uz Yandex vai vk līmeņa vietnēm, taču ir ieteicams nodrošināt opciju ar aizsardzību pret banālu OCR.

Pretvārtu aizsardzība. Formāli runājot, captcha kā Tjūringa tests nav nepieciešams, lai aizsargātu jūs no pretvārtiem, jo ​​šajā gadījumā to atpazīs persona. No praktiskā viedokļa šis jautājums ir ļoti aktuāls un ir kaut kā jāaizstāv sevi.
Šeit nav un nevar būt “zelta standarta” (jo šajā gadījumā antigates ieviesīs savu atbalstu), tāpēc varat brīvi papildināt captcha ar jebkādiem trikiem, lai to nebūtu iespējams atpazīt caur antigate. Piemēram:
- nestandarta captcha (puzles salikšana, attēla pagriešana, noklikšķināšana uz fotoattēla apgabala utt.);
- kirilicas captcha ir vienkāršākais risinājums, taču tam ir vairāki trūkumi: tas ir piemērots tikai projektiem ar krievvalodīgo auditoriju, ir pretvārti ar kirilicas atbalstu;
- izmantojot virtuālo tastatūru blakus captcha, lai ievadītu nestandarta rakstzīmes vai formas (var būt neērti mobilo sakaru lietotājiem);

Lietojamība

Neprasiet ievadīt captcha, ja jau esat pārliecinājies, ka jūsu priekšā ir persona. Tomēr šeit ir jāuzmanās, lai skripts nevarētu izmantot veidlapu neierobežotu skaitu reižu pēc viena cilvēka veiktā captcha ieraksta.
Piemērs: reģistrācijas veidlapa. Ja es kaut kur reģistrējos, un aizmirsu ievadīt lauku "pasta indekss", bet pareizi ievadīju captcha, man nav jārāda jauns. Veltiet 10 minūtes, lai kaut kur paturētu sev līdzi, ka šo konkrēto veidlapu pašlaik aizpilda dzīvs cilvēks.

Lai atvieglotu cilvēka atpazīšanu: nelietojiet burtus un ciparus vienlaikus captcha, vienlaikus neizmantojiet lielos un mazos burtus, izslēdziet līdzīgas rakstzīmes.

Atteikums izmantot captcha

Labākā captcha nav captcha. Kur var atteikties lietot – tas ir jādara. Iespējams, jums būs jāievieš papildu ierobežojumi un pārbaudes, taču lietotāji jums pateiks paldies.
Bet šeit jums jābūt ļoti uzmanīgiem. Piemēram: reģistrācijas veidlapa bez captcha, ar e-pasta lauku, uz kuru tiek nosūtīta aktivizācijas vēstule. Bez papildu drošības pasākumiem šāda veidlapa var tikt pārpludināta ar "kreisajām" adresēm, un jūsu vietne tiks iekļauta pasta pakalpojumu melnajā sarakstā. Šajā gadījumā jūs varat iztikt bez captcha, bet tikai tad, ja jums ir cita aizsardzības līnija, piemēram, IP ierobežojums.

Dažiem šajā tēmā sniegtā informācija šķitīs pašsaprotama, taču, ja es dzīvē nebūtu sastapis piemērus par šo vienkāršo principu pārpratumiem, tostarp pieredzējušiem kolēģiem izstrādātājiem, es netērētu laiku šī teksta rakstīšanai.

Captcha PHP, vai verifikācijas kods, kas ļauj atšķirt cilvēku no robota, katrs no jums to ievadīja daudzas reizes: reģistrējoties, sūtot ziņojumu, meklējot vietnē un daudzās citās vietās. Un šajā rakstā mēs analizēsim skriptu, captcha ieviešana PHP, kā arī es jums parādīšu, kā izmantot šo skriptu.

Pirmkārt . Izņemiet arhīvu un ievietojiet to savā vietnē.

Tagad par to, kā pievienojiet veidlapai captcha, piemēram, reģistrācijas veidlapā:


Reģistrācijas lauki...

Verifikācijas kods


;


Rezultātā reģistrācijas veidlapā jūs redzēsiet verifikācijas kodu, kas lietotājam būs jāievada. Tagad par to, kā pārbaudīt ievades pareizību. Lai to izdarītu, failā register.php" (vai citā failā, kas norādīts atribūtā " darbība") ierakstiet šādas rindiņas:

session_start();
if($_POST["kapcha"] != $_SESSION["rand_code"]) echo "Capcha ievadīts nepareizi";
else echo "Captcha ievadīts pareizi";

Tas ir, mēs lasām lietotāja ievadīto ( $_POST["kapcha"]) un salīdziniet ar sesijas saturu (šī vērtība tika reģistrēta, kad captcha paaudze). Ja vērtības nesakrīt, mēs secinām, ka captcha ir ievadīts nepareizi, pretējā gadījumā secinām, ka captcha tika ievadīts pareizi. Tas ir, tālāk jūs varat, pamatojoties uz salīdzināšanas rezultātu, veikt noteiktas darbības. Piemēram, reģistrējiet lietotāju vai nosūtiet viņu atpakaļ uz reģistrācijas veidlapu, lai gan, protams, tas ir atkarīgs no jūsu uzdevuma.

(3)

Captcha (CAPTCHA)- tas ir drošības kods, kas lietotājam jāievada īpašā vietnes laukā, lai pasargātu viņu no automātisko pakalpojumu darbības (robotiem, surogātpasta, plūdiem utt.), kas kaitē resursam.

Vienkārši sakot, captcha ir testa sistēma, kurā ir jāuzraksta uz attēla norādītais vārds, jāatrisina vienkāršs aritmētiskais vienādojums, jānoklikšķina uz atbilstošā attēla utt., lai pēc tam vietnē varētu veikt kādu darbību. Šī ir efektīva metode reģistrācijas un komentāru veidlapu aizsardzībai no robotiem, jo ​​dators pats nespēj ģenerēt pareizo atbildi.

Jebkurš lietotājs ir saskāries ar captcha, ja viņš ir reģistrējies vismaz vienu reizi vai atstājis atsauksmes forumā vai emuārā. Šodien mēs jums pastāstīsim, kāpēc captcha vispār ir nepieciešama, kādi veidi tas ir, kā izvēlēties, vai ir iespējams nopelnīt naudu internetā, ievadot captcha.

Lūdzu, ņemiet vērā, ka vārds "captcha" nāk no angļu valodas saīsinājuma CAPTCHA (pilnīgi automatizēts publiskais Tjūringa tests, lai atšķirtu datorus un cilvēkus) ir pilnībā automatizēts publiskais Tjūringa tests, lai atšķirtu datorus un cilvēkus. Šo efektīvo testa programmu izgudroja zinātnieki no Kārnegi pētniecības centra, kas atrodas ASV, proti, Pensilvānijas štatā.

Kā jau sapratāt, šīs programmas galvenā funkcija ir vietnes apmeklētāja pārbaude, kas palīdz vēlreiz pārbaudīt, vai viņš tiešām ir “dzīvs cilvēks”. Daudzi resursi liek mums ievadīt captcha, jo mūsdienās ir milzīgs skaits programmu, kas var automātiski nosūtīt sludinājumus internetā, atstāt viltus komentārus, ievietot saites uz vīrusu resursiem un tamlīdzīgi.

Pieņemsim, ka jums ir tīmekļa lapa, kurā lietotāji komentē noteiktu tēmu, iepriekš aizpildot laukus "nosaukums", "e-pasts" un "vietnes URL". Šādas manipulācijas ērti var veikt robots – aizpildiet laukus un publicējiet surogātpasta izplatītājam nepieciešamo atsauksmi. Bet, ja ievietosiet captcha, programma vairs nevarēs to ievadīt, kas nozīmē, ka nebūs surogātpasta.

Noteikti jums ir bijusi situācija, kad tikko sarakstījāties ar kādu sociālajā tīklā VKontakte, un, nosūtot nākamo ziņojumu, parādījās captcha, un, kamēr jūs to neievadīsit, jūs nevarēsit veikt nekādas darbības. Tas notika tāpēc, ka jūsu rīcība sistēmai šķita aizdomīga, piemēram, pārāk ātra ziņojumu sūtīšana. Tāpēc ir šādi piesardzības pasākumi.

Pēc Akismet teiktā, 90 procenti no visiem komentāriem internetā ir surogātpasts. Pats surogātpasts ir nepieciešams:

  • reklāma;
  • masveida reģistrācija vietnēs;
  • saišu ievietošana, lai uzlabotu jūsu resursa rangu meklētājprogrammās;
  • vīrusu koda izplatīšana, lai piekļūtu citu personu personas datiem;
  • manipulatīvas tiešsaistes balsošanas sistēmas veikšana.

Visas iepriekš minētās procedūras ir nelikumīgas, taču ar viņu palīdzību krāpnieki pelna naudu internetā. Ja jūs rīkojaties neatkarīgi, manuāli, tad šo metožu efektivitāte praktiski tiek samazināta līdz nullei. Bet, ja izmantojat automātiskos robotprogrammatūras, tie veiks līdzīgas darbības daudzos datoros, kas automatizēs masu darbības un nopelnīs pienācīgu naudas summu.

Automātiskais surogātpasts spēcīgi ietekmē vietnes reputāciju un veiktspēju, tāpēc daudzu resursu īpašnieki, īpaši lielu, kurus ik dienas apmeklē tūkstošiem robotu un dzīvu cilvēku, no tā baidās. Tāpēc, reģistrējoties šādās vietnēs, jūs noteikti saskarsities ar nepieciešamību ievadīt captcha, jo tas ir vienkāršs veids, kā novērst automātisko programmu surogātpasta darbības.

Kādi ir captcha veidi?

Apsveriet vienkāršākās un ērtākās captchas, kas tiek izmantotas lielākajā daļā vietņu.


Pārbaude no Google meklētājprogrammas, vienkāršākā un ērtākā. Lai to pabeigtu, vienkārši atzīmējiet ķeksīti blakus vārdiem "Es neesmu robots". Pēc brīža tiks parādīta zaļa atzīme, kas nozīmē, ka pārbaude ir veiksmīgi pabeigta.

Bet sistēma joprojām var veikt papildu pārbaudi, novirzot jūs uz lapu, kurā tiek atlasīti nepieciešamie attēli. Piemēram, jums tiks lūgts noklikšķināt uz visām fotogrāfijām, kurās ir burti.

Teksta/ciparu atpazīšana


Laukā jāieraksta attēlā norādītie izliektie cipari vai burti. Vārdi nāk gan latīņu, gan kirilicā. Gadās, ka cilvēks vienkārši nevar saprast, kas tiek rādīts, tāpēc ērtības labad tika izdomāta poga "atjaunināt attēlu", uz kuras noklikšķinot, tiks parādīta cita. Dažreiz ir arī poga attēla satura izrunāšanai.

prāta mežģis


Šajā captcha jums būs jāatrisina vienkāršs aritmētiskais vienādojums, piemēram, laukā ierakstiet, cik daudz būs 21 + 42; vai atrisināt vienkāršu mīklu, norādot pareizo atbildi.

tēlains


Captcha ir attēls. Lai nokārtotu testu, jums vienkārši jāatlasa vēlamais attēls, piemēram, noklikšķiniet uz visiem attēliem ar zivīm.

Kuru captcha izvēlēties savai vietnei?

Daudzi tīmekļa pārziņi nevēlas instalēt šādu testa programmu savam resursam, jo ​​baidās, ka viņi zaudēs daļu apmeklētāju. Un šīs bailes nav veltas, jo saskaņā ar oficiālo statistiku parastam lietotājam ir nepieciešamas aptuveni 10 sekundes, lai izietu drošības koda pārbaudi. Protams, nevienam nepatīk šī procedūra.

Situāciju pasliktina sliktā captcha atpazīšana, tāpēc vietnes pēc tās ieviešanas zaudē aptuveni 2-10 procentus apmeklētāju. Jāpatur prātā, ka ir lietotāji ar sliktu redzi - pēc pārbaudes pārbaudes viņiem ir vieglāk pamest vietni un doties uz citu.

Tāpēc ir svarīgi instalēt captcha, kas lieliski pildīs savas tiešās funkcijas (aizsargās vietni no surogātpasta) un netraucēs lietotājiem. Lai to izdarītu, tai jāatbilst 3 vienkāršām prasībām:

  1. Tests jebkurā gadījumā ir jāatrisina viegli un ātri.
  2. Minimālais skaitļa/burta ieraksts.
  3. Uzdevumam jābūt vieglam pat apmeklētājiem ar maņu problēmām.

Daudzi servisi izmanto captcha, kur jānorāda attēlā redzamais. Bet, kā liecina prakse, atbildes uz loģiskiem jautājumiem cilvēkiem ir daudz ticamākas un interesantākas.

Tomēr Google standarta teksts reCAPTCHA mūsdienās joprojām ir vispopulārākais — tas ir visvairāk aizsargāts no surogātpasta izplatītājiem, kuri pastāvīgi nāk klajā ar jauniem veidiem, kā apiet verifikāciju. Šī programma nemitīgi maina savu darbības algoritmu, un tagad vairumā gadījumu, lai nokārtotu testu, pietiek atzīmēt izvēles rūtiņu - tas aizņems tikai 2-3 sekundes, un nav jāatpazīst un jāievada burti / cipari / attēli.

Papildus reCAPTCHA vietņu īpašnieki bieži izmanto arī šādas captchas:

  • yaCAPTCHA;
  • Atrisināt Media;
  • Anti surogātpasta attēls;
  • SI Captcha Anti-Spam.

Kā nopelnīt naudu, ievadot CAPTCHA?

Captcha ir ne tikai noderīgs drošības rīks, bet arī lieliska iespēja bez piepūles nopelnīt papildus naudu internetā. Šeit ir daži uzticami pakalpojumi, kas jums palīdzēs:

  • Rukapča. Automātiski atpazīst attēlus. Mūsdienās daudzi tīmekļa resursu īpašnieki pieprasa masveida captcha ieviešanu, lai jūs varētu viņiem piedāvāt savus pakalpojumus.
  • 2 captcha. Iepriekš minētā pakalpojuma ekvivalents angļu valodā.
  • megatipieri,Protipētāji. Amerikāņu resursi, kas ļauj nopelnīt no 50 centiem līdz 3 USD par 1000 captcha ierakstiem.

Secinājums

Mūsdienu internetā ir milzīgs daudzums surogātpasta, un, iespējams, tuvākajā nākotnē parādīsies jaunas, efektīvākas metodes vietņu aizsardzībai pret krāpšanu. Taču pagaidām vienīgais glābiņš resursu īpašniekiem ir captchas, kas filtrē automātisko programmu kaitīgo darbību.

  • Sergejs Savenkovs

    kaut kāds “trūcīgs” apskats ... it kā kaut kur steigtos