• 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

Cum sa te loghezi pe un site folosind CURL in PHP?

3
  • Publicat de Andrei Avădănei
  • în PHP · Tehnic
  • — 17 ian., 2011 at 2:27 pm

De foarte multe ori in domeniul web suntem nevoiti sa automatizam anumite procese. Unele dintre acestea presupun extragerea si parsarea unor informatii de pe alte site-uri. O metoda foarte populara foloseste modulul CURL pentru a descarca o pagina web externa. O prima introducere in aceasta tehnica am abordat-o in urma cu ceva vreme cand am aratat cum putem descarca continutul HTML al unei pagini web. Mai tarziu am publicat un mic tutorial in care avem explicatii cuprinzatoare cu privire la folosirea modulului CURL in model multi-thread.

Problema apare atunci cand dorim sa descarcam continutul unei pagini web dar care este protejata de un sistem de autentificare (de cele mai multe bazat pe cookie-uri). In aceasta situatie trebuie sa folosim acelasi modul pentru a accesa si simula o autentificare, sa stocam cookie-urile intr-un fisier local si apoi sa le folosim in noile requesturi, simuland astfel un utilizator autentificat. Exemplul de mai jos reprezinta o rezolvare generalizata a unui sistem de autentificare bazat pe un exemplu real.

<?php

//http://www.worldit.info 
$agent    = 'Mozilla (WorldIT)'; //browserul cu care te vei loga
$username = 'worldit.info'; //utilizatorul
$pass     = 'viziteaza-worldit.info';//parola
$url      = 'http://www.wit.info/index.php';//pagina pe care sunt trimise datele de autentificare
$urlacc   = 'http://www.wit.info/date-confidentiale.php';//pagina pe care trebuie sa o descarcam in momenntul in care suntem logati
$postdata = "user_name=".$username."&user_pass=".$pass."&remember_me=y&login=Login"; //datele transmise prin post/get (pot fi modificate)
$cookie   = 'cookie.txt';//fisierul unde sunt stocate datele

$result = curl_login($postdata,$url,$cookie,$agent,TRUE); //ne logam
echo curl_access_logged($urlacc,$cookie,$agent);//accesam o pagina ca fiind logati


//functia minimala pentru simularea unui sistem de autentificare & stocarea sesiunii valide
function curl_login($postdata='',$url='',$cookie='',$agent='',$post=TRUE)
{	
	$ch = curl_init();
	curl_setopt ($ch, CURLOPT_URL, $url);

	curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
	curl_setopt ($ch, CURLOPT_USERAGENT, $agent);
	curl_setopt ($ch, CURLOPT_TIMEOUT, 60);
	curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
	curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 0);
	curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie);
	curl_setopt ($ch, CURLOPT_REFERER, $url);
	if($post)
	{
		curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
		curl_setopt ($ch, CURLOPT_POST, 1);
	}	
	$result = curl_exec ($ch);
	curl_close($ch);
	return $result;
	
}
//functia clasica pentru accesarea unei pagini folosind curl & cookies
function curl_access_logged($url,$cookies,$agent)
{
	$rand = rand(100000,400000);	
	$ch = curl_init(); 
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_USERAGENT, $agent);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
	curl_setopt($ch, CURLOPT_COOKIEFILE, $cookies);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
	$result = curl_exec ($ch);
	curl_close ($ch);
	return $result;
}
?>

Modelul de mai sus reprezinta solutia pentru automatizarea unui proces de autentifcare ce are un formular de logare bazat pe 4 campuri – doua campuri ce trebuie completate si reprezinta datele de autentificare, un checkbox care spune ca dorim sa ramanem logati si un buton ce trimite datele. Pentru a afla aceste campuri puteti analiza formularul HTML aferent al sistemului de autentificare.

Etichete: ce este curlcum pot folosi curl pentru a ma logacum sa ma loghez folosind curlcurldespre curllogheaza-te folosind curlPHPtutorial curltutorial php

— 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 Cititorii worldit.info – functionabilitatea e cel mai important aspect al unei aplicatii web
  • Articolul următor HTML 5 are un logo oficial din partea W3C

3 Comentarii

  1. Prisacaru Anatolie spune:
    ianuarie 17, 2011 la 5:11 pm

    He-he 🙂 Old school!
    Printr-o coincidenta funny, wit.info e o prostie de „site” in japoneza.

  2. Andrei Avădănei spune:
    ianuarie 17, 2011 la 5:36 pm

    Da, asta cam asa e. Am ales wit.info pentru ca nu doream sa fie o neintelegere si sa considere cineva ca e autentificarea pentru WordPress.

  3. Andrei spune:
    ianuarie 17, 2011 la 7:01 pm

    Foarte interesant articolul. Multumesc!


  • 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
  • mai 2022
    L Ma Mi J V S D
     1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031  
    « dec.    
  • Link-uri Sponsorizate

    • laptop second hand

    • Calculatoare Second Hand

    • cod voucher pc garage

  • Home
  • Tehnic
  • PHP
  • Cum sa te loghezi pe un site folosind CURL in PHP?
  • 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