ClsHack:Computer Security Blog    

Script login php-mysql con cookie


Un po’ di tempo fa avevo mostrato come creare un semplice sistema di login in php-msql sfruttando le sessioni.

Vediamo ora come fare la stessa cosa sfruttando i cookie.

In anzi tutto capiamo cosa sono i cookie:

Da wikiPedia:
I cookie HTTP (più comunemente denominati Web cookies, tracking cookies o semplicemente cookie) sono frammenti di testo inviati da un server ad un Web client (di solito un browser) e poi rimandati indietro dal client al server – senza subire modifiche – ogni volta che il client accede allo stesso server.

I cookie HTTP sono usati per eseguire autenticazioni e tracking di sessioni e memorizzare informazioni specifiche riguardanti gli utenti che accedono al server, come ad esempio i siti preferiti o, in caso di acquisti on-line, il contenuto dei loro “carrelli della spesa” (shopping cart). Il termine “cookie” – letteralmente “biscotto” – deriva da magic cookie, concetto ben noto in ambiente UNIX che ha ispirato sia l’idea che il nome dei cookie HTTP.

Dentro ai cookie, noi salveremo la nostra PASSWORD e il nostro USERNAME, per far si che il sistema di Login si ricordi la password e non ci faccia inserire nome utente e pasword ad ogni pagina protetta che visitiamo.

Iniziamo:

Nel nostro file php, dovremo fare in modo che se il login è esatto, salvi la password e il nome utente, dati in input nei cookie:


setcookie("login_name", "$nome_utente",TEMPO);
setcookie("login_pass", "$password",TEMPO);

Al posto del parametro TEMPO va inserito il valore in secondi della durata del cookie. es: time()+3600;
Oppure se vogliamo che il cookie si auto elimini alla chiusura del borwser inseriamo false.

Bene ora inseriamo la funzione di controllo login in tutte le pagine private:

< ?php
//controllo autentficazione

//return true se e' gia loggato
function control_login(){
	//esistono i cookie
	if (isset($_COOKIE['login_name']) && isset($_COOKIE['login_pass'])) {
		//connessione al db

		//password e nome utente presi dai cookie, filtrando esso ===> COOKIE
		$nome_utente=htmlspecialchars($_COOKIE['login_name']);
		$password=htmlspecialchars($_COOKIE['login_pass']);

		//query al database
		$query = "SELECT nome,password FROM utenti WHERE nome='$nome_utente' AND password='$password' ";
		//risultato query
		$result = mysql_query($query);

		if(mysql_num_rows($result)>0)
			return true;
	}
}
?>

Cosa fa tale funzione ?
Controlla, prima di tutto se esistono i cookie:

if (isset($_COOKIE['login_name']) && isset($_COOKIE['login_pass'])) {

Poi se si, gli filtra:


$nome_utente=htmlspecialchars($_COOKIE['login_name']);
$password=htmlspecialchars($_COOKIE['login_pass']);

E infine, esegue la query al database per verificare che non siano stati modificati.

$query = "SELECT nome,password FROM utenti WHERE nome='$nome_utente' AND password='$password' ";

La funzione restituisce true se il nome utente e la password coincidono.

Related posts:

  1. [php/mysql] semplice script login con sessioni
  2. Auto Login su Windows Xp
  3. BugMeNot: Salta la fastidiosa registrazione da Forum/Siti/blog
  4. [guida]Creare Script php AUTOMATICO

This entry was posted on Saturday, July 11th, 2009 at 11:16 am and is filed under Programming. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

Tagged with: