Newsgroup: it.comp.www.php
Titolo: [PHP - SESSIONI] - Problema con id di sessione

Salve a tutti.
Vorrei proporvi questo quesito.
Ho realizzato un controllo di sicurezza di questo tipo:
function isLogged() {
if(array_key_exists('loggato', $_SESSION) && 
$_SESSION['loggato']==1) {	//	se la variabile di sessione loggato esiste 
ed è =1
	if (array_key_exists('utente', $_SESSION) && 
is_array($_SESSION['utente'])) {
return (!strcmp($_SESSION['utente']['ip'], $_SERVER['REMOTE_ADDR']) && 
!strcmp(session_id(),$_SESSION['utente']['sid']) && 
!strcmp($_SESSION['utente']['http_user_agent'],$_SERVER['HTTP_USER_AGENT'])
&& !strcmp($_SESSION['utente']['http_accept_language'], 
$_SERVER['HTTP_ACCEPT_LANGUAGE']));
}
}
	return false;
}	//	Chiude la funzione isLogged
In sostanza controllo diversi parametri per assicurarmi che l'utente sia 
sempre lui.
Lo so che è fin troppo macchinoso ma non si sa mai.
Mi sono accorto che, quando mi loggo con que browsers diversi (il sito 
per ora gira in locale sotto Win2000 + PHP 4.3.3 + apache 1.3.27 + mysql 
4.0.15), mi viene assegnato lo stesso identico id di sessione, e ciò 
provoca l'immediata disconnessione di uno dei due browser (quello usato 
per la prima connessione).
Esiste un modo per ovviare a questo (oltre che eliminare il controllo 
sula versione del browser)?
Grazie

 sia sempre lui.  Lo so che è fin troppo macchinoso ma non si sa mai.
IMHO e' inutile. Se un utente malizioso e' riuscito ad intercettare il
cookie di sessione di un altro utente, allora puo' tranquillamente
essere stato in grado di intercettare l'user agent. Per quello che
riguarda l'IP rischi che certi utenti non possano accedere al tuo sito
a causa di proxy dinamici tra loro ed il tuo sito. Il controllo sul
session_id e' totalmente inutile.
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
Vuoi supportarmi? 
http://url.repository.biz/go/3E
Do. Or do not. There is not try.

Setec Astronomy ha scritto:
 > Movie Maniac® wrote:
 >
 >
 >> In sostanza controllo diversi parametri per assicurarmi che l'utente
 >> sia sempre lui.  Lo so che è fin troppo macchinoso ma non si sa mai.
 >
 >
 >
 > IMHO e' inutile. Se un utente malizioso e' riuscito ad intercettare il
 > cookie di sessione di un altro utente, allora puo' tranquillamente
 > essere stato in grado di intercettare l'user agent.
Ecco perchè controllo l'ip anche, e sarà più chiaro tra un attimo...
 > Per quello che
 > riguarda l'IP rischi che certi utenti non possano accedere al tuo sito
 > a causa di proxy dinamici tra loro ed il tuo sito.
Sto realizzando un pannello di amministrazione per un sito, che verrà 
gestito (il pannello) solo da una persona, quindi non ho problemi di 
questo genere per fortuna).
 > Il controllo sul
 > session_id e' totalmente inutile.
davvero? e perchè?
Scusa, non vorrei sembrare impertinente eh, sono solo un novello in 
fatto di sicurezza, e cerco di togliermi tutti i dubbi. Mi farebbe 
piacere che mi spiegassi questa cosa, o magari mi indicassi della doc 
(oltre il manuale di php che ho qui in locale in chm)...
Grazie mille per la cortesia

 davvero? e perchè?
Il session_id viene utilizzato per recuperare i dati della sessione e
sara' per forza identitico a quello che salvi in sessione, altrimenti
stai accedendo ad una altra sessione per la quale, a sua volta, avrai
salvato un altro id di sessione etc. etc. etc.


Setec Astronomy ha scritto:
 > Movie Maniac® wrote:
 >
 >
 >> > Per quello che
 >> > riguarda l'IP rischi che certi utenti non possano accedere al tuo
 >> sito  > a causa di proxy dinamici tra loro ed il tuo sito.
 >>
 >> Sto realizzando un pannello di amministrazione per un sito, che verrà
 >> gestito (il pannello) solo da una persona, quindi non ho problemi di
 >> questo genere per fortuna).
 >
 >
 >
 > Non e' detto, se l'utente si collega con un provider che utilizza proxy
 > dinamici allora potrebbe incontrare problemi ad accedere al sistema.
Credo che accederà comodamente da casa sua con telecom. Comunque per 
curiosità, potresti farmi qualche esempio di operatori che usino questa 
modalità di connessione? fastweb è uno di questi?
 >> > session_id e' totalmente inutile.
 >>
 >> davvero? e perchè?
 >
 >
 >
 > Il session_id viene utilizzato per recuperare i dati della sessione e
 > sara' per forza identitico a quello che salvi in sessione, altrimenti
 > stai accedendo ad una altra sessione per la quale, a sua volta, avrai
 > salvato un altro id di sessione etc. etc. etc.
Maremma, quello che mi dici mi preoccupa. Com'è che ho trovato un sacco 
di esempi in giro con controllo del session_id. Temo di non averci 
capito un cazz a questo punto.
Come dovrei agire per stare tranquillo allora?
Premetto che non setto nessun cookie...

 Come dovrei agire per stare tranquillo allora?
http://www.owasp.org
-- 
I am what I am, I do what I can


Setec Astronomy ha scritto:
 >> Come dovrei agire per stare tranquillo allora?
 >
 >
 >
 > 
http://www.owasp.org
ok, ho scaricato la guida in pdf da leggere, ma esiste qualcosa di 
specifico che devo leggere su come gestire il login?
O semplicemente comincio da pagina 1 :)
Comunque grazie per i suggerimenti ;)
Ciao