• Acasă
  • Despre noi
  • Autori
  • Mărturii
  • Arhivă
  • Trimite Articol
  • Contact

WORLDIT

Lumea în 1 și 0.

  • Știri
    • Tehnologie
    • Tehnologie mobilă
    • Securitate
    • Developers
    • Știință
    • Benzi desenate
    • Jocuri
    • Intern
  • Tehnic
    • Browser
    • C#
    • C/C++
    • Challenge
    • HTML/CSS
    • Javascript, Ajax, jQuery
    • Open Source
    • PHP
    • Python
    • Securitate IT
    • Socializare
    • WordPress
    • Altele
  • Recenzii
  • Interviuri
  • Evenimente

Captcha ce se bazeaza pe o operatie matematica

3
  • Publicat de Andrei Avădănei
  • în Fără categorie
  • — 15 aug., 2009 at 12:54 pm

Multi dintre voi poate doresc sa opreasca spamul pe blogurile lor sau in sistemele de logare folosind un captcha.Acesta poate fi de mai multe feluri : captcha clasic , cand va trebui sa introduceti un cuvant , captcha folosind o operatie simpla de adunare scadere,inmultire impartire etc , o comanda vocala etc.

Astazi m`am gandit sa ofer o mica idee pentru programatorii ce doresc sa faca un captcha folosindu-se de o operatie matematica.

function captcha($limit1,$limit2,$operation,$w,$h)
{
	$v1 = rand(1,$limit1); //generam primul numar in intervalul corespunzator
	$v2 = rand(1,$limit2); //generam al doilea numar in intervalul corespunzator

	switch($operation) //calculam valoarea corecta
	{
		case '+':
		   $_SESSION['captcha'] = $v1+$v2;
		break;
		case '-':
		   $_SESSION['captcha'] = $v1-$v2;
		break;
		case '*':
		   $_SESSION['captcha'] = $v1*$v2;
		break;
		case '/':
		   $_SESSION['captcha'] = $v1/$v2;
		break;
	}
	
	$img = imagecreate($w, $h); //cream imagine de $w*$h
	 
	$white = imagecolorallocate($img, 255, 255, 255);
	$black = imagecolorallocate($img, 0, 0, 0);
	$grey  = imagecolorallocate($img, 205, 204, 205);
	
	imagefill      ($img, 0, 0,  $black); //facem un dreptunghi negru
	imagestring    ($img, rand(1,10), rand(1,35), rand(5,10), $v1.$operation.$v2."=?", $white); //scriem
	imagerectangle ($img, 0, 0,$w-1,$h-1,$grey);
	imageline      ($img, 0, $h/2,$w, $h/2, $grey); //adaugam niste linii pentru a ingreuna crackingul
	imageline      ($img, $w/2,0, $w/2, $h, $grey);
	header("Content-Type: image/jpeg"); //anuntam faptul ca va fi o imagine
	 
	imagejpeg($img); //afisam imaginea
}

Folosire :

captcha(20,21,’+’,100,30);

Rezultat :

Practic am creat un captcha ce va face operatia de adunare, cu valori cuprinse intre 1 si 20,respectiv 1 si 21(primele 2 argumente ale functiei),urmatorul reprezentand operatia(adunare,scadere,inmultire,impartire).Ultimile 2 argumente reprezinta latimea,respectiv inaltimea imaginii generate.

Evident aceast script poate fi facut mai avansat,generand culorile random,dar aceasta este tema dumneavoastra. Hint : $white,$black,$grey.

Pentru a verifica daca a introduc captcha`ul corect va trebui sa faceti o verificare asemanatoare cu cea de mai jos :

$captchaDeVerificat = $_POST['c'];
if($captchaDeVerificat == $_SESSION['captcha'])
{
  // ok
}
else
{
 //error
}

Pana data viitoare,numai bine! 😀

Etichete: captchaImaginematematicaPHPspamvocal

— Andrei Avădănei a scris 1246 articole

Andrei scrie pe worldit.info din vara lui 2011. Este fondatorul Asociatiei Centrul de Cercetare in Securitate Informatica din Romania - CCSIR si coordoneaza DefCamp, cea mai importanta conferinta de securitate informatica & hacking din Europa Centrala si de Est. Andrei ofera in cadrul Bit Sentinel servicii de securitate informatica, penetration testing, security management, recuperarea de pe urma unui atac cibernetic, training-uri si workshop-uri.

  • Articolul anterior Lite Facebook
  • Articolul următor Medicii olandezi au creat un joc video pentru „exterminarea” virusului A H1N1

3 Comentarii

  1. miculprogramator spune:
    august 16, 2009 la 9:39 pm

    Acum am aflat mai mute despre asta, interesant, bravo! Vad ca merge bine categoria cu PHP. ;)Keep it on work !

  2. Cum sa te protejezi de atacurile Cross-site request forgery(CSRF)? | WorldIT spune:
    noiembrie 28, 2009 la 10:08 pm

    […] de captcha ce va simula aceleasi verificari ca mai sus.Pentru asta puteti studia implementarea unui sistem Captcha ce se bazeaza pe o operatie matematica intr-o pagina web scrisa pe […]

  3. stefan spune:
    octombrie 31, 2014 la 2:35 pm

    Da nu era bun si un is_numeric?:))

    $captchaDeVerificat = htmlspecialchars($_GET['c']);
    if(!is_numeric($captchaDeVerificat)) die("Rezultatul nu este numeric");


  • Facebook

    WorldIT.info
  • Ultimele Atacuri Cibernetice din Romania – RO Hacked

    [wp_rss_retriever url="https://rohacked.bit-sentinel.com/feed/" excerpt="none" items="5" read_more="false" new_window="true" thumbnail="false" cache="0"] RO Hacked este registrul atacurilor cibernetice din România.
  • Caută

  • Articole Recomandate

    • Recent Posts
    • Tags
    • Număr record de participanți la DefCamp 2015, cel mai important eveniment dedicat securității cibernetice din Europe Centrala si de Estdecembrie 2, 2015
    • La DefCamp 2015 vei afla prin ce tehnici pot fi evitate măsurile de securitate ale sistemelor informatice criticeoctombrie 16, 2015
    • Ultima sansa sa rezervi bilete de tip Early Bird la DefCamp 2015septembrie 1, 2015
    • 15 sfaturi despre cum poti deveni un programator bun venite de la specialisti romaniaugust 4, 2015
    • algoritmica Android antivirus Apple Avadanei Andrei benzi desenate BitDefender blog browser C++ Chrome concurs eveniment Facebook Firefox Google google chrome hacking html5 infografic informatica internet Internet Explorer IT javascript linux Microsoft Mozilla Firefox online PHP programare retea sociala review Romania securitate Tehnologie Twitter web Windows Windows 7 Wordpress WorldIT worldit.info Yahoo! YouTube
  • iunie 2023
    L Ma Mi J V S D
     1234
    567891011
    12131415161718
    19202122232425
    2627282930  
    « dec.    
  • Link-uri Sponsorizate

    • laptop second hand

    • Calculatoare Second Hand

    • cod voucher pc garage

  • Home
  • Captcha ce se bazeaza pe o operatie matematica
  • Important

    • Bit Sentinel
    • Centrul de Cercetare în Securitate Informatică din România
    • DefCamp
  • Prieteni

    • BetiT.ro
    • bijuterii handmade
    • Computerica | Resurse gratuite PC
    • Descopera.org
    • Gadgeturi si IT – Giz.ro
  • Prieteni

    • PC – Config
    • RO Hacked
    • Stiri IT

Copyright © 2009-2014 WORLDIT. Toate drepturile Rezervate.
Termeni și condiții | Contact | Licența Creative Commons