Barra laterale

programmazione:php:oltrepassare_autenticazione_http_tramite_php_curl

Oltrepassare autenticazione http tramite php-libcurl

Autore: Fabio Di Matteo
Ultima revisione: 01/12/2008

Spesso si puo' avere l'esigenza di creare uno script php che compia determinate operazioni su di una pagina protetta da autenticazione http (per intenderci la finestrella del browser che ci chiede nome utente e password).

Risorse in rete

Dipendenze

  • Apache;
  • PHP >=4;
  • wrapper php per libcurl (su debian/ubuntu il pacchetto si chiama php5-curl);

La funzione che permette di fare il login

function auth($base_url, $user,$pass)
{
 
	// Il solito - init curl uno sessione e impostare la url
	$ch = curl_init(); 
	curl_setopt($ch, CURLOPT_URL, $base_url); 
 
	// Imposta il login e la password per l autenticazione
	curl_setopt ($ch, CURLOPT_USERPWD, $user.":".$pass); 
 
	// È possibile utilizzare CURLAUTH_BASIC, CURLAUTH_DIGEST, CURLAUTH_GSSNEGOTIATE,
	// CURLAUTH_NTLM, CURLAUTH_ANY, and CURLAUTH_ANYSAFE / / CURLAUTH_NTLM, CURLAUTH_ANY, e CURLAUTH_ANYSAFE
 
        // È possibile utilizzare il bit | (o) operatore di combinare più di un metodo.
	// CURLAUTH_ANY è un alias per CURLAUTH_BASIC | CURLAUTH_DIGEST |
	// CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM / / CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM
	// CURLAUTH_ANYSAFE è un alias per CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM 
 
	//  Se non si e' sicuri utilizzare CURLAUTH_ANY in quanto copre tutti i casi
	curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
 
	//  Questo è talvolta necessario per fermare CURL dal verificare i certificati.
	//curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
 
	// Opzionale: Torna il risultato invece di stamparlo, e quindi non fa vedere nulla della pagina
	//curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 
	// Ottiene i risultati e chiude la sessione
	$data = curl_exec($ch);
	curl_close($ch); 
 
	//Ci porta alla pagina oltre l'autenticazione
	@header('Location: '.$base_url);
}

Utilizzo della funzione

auth("http://server/indirizzo-pagina-autenticazione.php","TUOUTENTE","TUAPASSWORD");

programmazione/php/oltrepassare_autenticazione_http_tramite_php_curl.txt · Ultima modifica: 18/04/2018 - 15:49 (modifica esterna)