Newsgroup: it.comp.www.php
Titolo: Wooooosh....

Scusate ma non ho trovato un subject adatto, che fosse significativo per 
il problema che segue (č anche tardi) ;) :
Supponiamo io debba realizzare una Web Application in php.
L'app. ha utenti diversi E PERMESSI diveri per utente.
Posso fare 2 cose: mi loggo al database con le stesse credenziali per 
tutti gli utenti che si connettono, e gestisco TUTTI i permessi lato 
applicazione. Fin'ora per piccole cose ho fatto cosě.
OPPURE
Creo un account sul database per ciascun utente, coi permessi oppurtuni 
su ciascun oggetto, e passo al DB le medesime credenziali con cui 
l'utente č entrato.
Vantaggi della seconda: se lascio un buco nel mio "php", la cosa č 
evidentemente MOLTO meno grave.
Domanda... come faccio a passarle ogni volta al DB ? se le metto in 
sessione vengono scritte nel "cookie" di sessione lato server... ok che 
č server side, perň non mi piace andare in /tmp e trovare scritte login 
e pass degli utenti che si sono loggati.
Avete idee ? come fate ?
grazie, ciao !
(Wooosh)
f.

 
potresti usare un'autenticazione in .htaccess
e usi la variabile user e pass di apache per collegarti al database
-- 
rotolando sul pavimento che ride

 e usi la variabile user e pass di apache per collegarti al database
Hmmm... il problema non è tanto acquisire username e pass, piuttosto 
quello di "mantenerle" all'interno di una sessione... senza usare una 
sessione. ;) Ovvero, come le "propago" per le connessioni al database 
che avvengono in "pagine" diverse dalla prima ?
Crittografarle IMHO non risolverebbe il problema ma lo "sposterebbe" e 
basta, visto che dovendo php leggere e scrivere quei dati, la chiave 
dovrà necessariamente trovarsi "da qualche parte", e pure "alla portata" 
di php.
Thanks, cmq...
ciao, f.

 
appunto, non vengono messe in sessione perché vengono rispedite ad ogni
chiamata http dal browser dell'utente, le dovresti trovare poi nell'array
$_SERVER['USERNAME'] o qualcosa del genere


 chiamata http dal browser dell'utente, le dovresti trovare poi nell'array
"Ad ogni chiamata" ? Non pensavo.
Purtroppo cmq non credo di poterlo fare, uso php in configurazione CGI e 
*mi pare che* apache metta a disposizione quesi dati a php solo se 
quest'ultimo gira come modulo. cmq ci "indagherò" un po' su' , grazie !
ciao, f.


Ci sarebbero controindicazioni a mantenerle in un cookie lato client e 
leggere il cookie ogni volta che si vuole stabilire una connessione al DB ?
Magari mantenendo in una variabile di sessione il nome del cookie.
Luigi

 ciao, f.
-- 
Vedo gli amici ancora sulla strada, loro non hanno fretta,
rubano ancora al sonno l'allegria all'alba un po' di notte:
e poi la luce, luce che trasforma il mondo in un giocattolo.
Faremo gli occhiali cosě, Faremo gli occhiali cosě!

 applicazione. Fin'ora per piccole cose ho fatto cosě.
Se devi realizzare una web application, lascia che sia essa a collegarsi 
al database, e fai in modo che gli utenti ammessi alla web application 
siano discriminati in base a qualche caratteristica. In sostanza, 
singola utenza sul database (la web application), multi-utenza sulla web 
application. Mi sembra un approccio razionale. Gli utenti li tracci con 
una sessione ciascuno.
Io nel sistema che ho sviluppato ho fatto proprio cosi'.
-- 
Falco Stellare - DeepVoid
www.deepvoid.it


se il problema č la /tmp che č condivisa allora puoi ovviare 
configurando con ini_set il valore di "session.save_path"
-- 
"20060207: buongiorno italia, buongiorno maria.
con gli occhi pieni di malinconia"

 Magari mantenendo in una variabile di sessione il nome del cookie.
Si, in effetti potrei metterle in un cookie, crittografandole 
simmetricamente in modo che solo il mio server possa rileggerle.
Mumble mumble... thanks !
f.

 
Appunto, inoltre chette dico chettefraga di memorizzare in sessione la 
password e lo username.
E sufficiente conservare in sessione l'informazione loggato si/no.
Username e password li usi solo al login.
Genertalmente io conservo in sessione i dati dell'utente con esclusione 
della password in un array tipo:
$_SESSION["utente"]["nome"]
$_SESSION["utente"]["cognome"]
$_SESSION["utente"]["tagliascarpe"]
........
-- 
Cordialmente.
Melus.
dal mio e-mail togli i simboli di Zorro.

 password e lo username.
 > E sufficiente conservare in sessione l'informazione loggato si/no.
 > Username e password li usi solo al login.
Te lo spiego.
Li uso per loggarmi al database, in ogni pagina.
Tutti gli utenti che condividono la stessa login postgreSQL = "don't 
like it".
Se mi scappa un "buco" nel codice (SQL injection, per dire), non puoi 
uscire al di là dei permessi che avevo previsto per il tuo utente. Fine 
della storia.
Sulle autorizzazioni lato applicazione, mi limito a visualizzare certi 
menu o meno a seconda dello user. Non faccio controlli "hard", visto che 
i permessi sul DB sono "fine tuned" e ristretti quanto più possibile per 
CIASCUN utente.
ciao, f.

 della storia.
mah, imho hai sbagliato leggermente approcio. il problema è appunto evitare
le SQL injection. per quanto riguarda la granularità dei permessi puoi
risolvere benissimo come ti ho suggerito nell'altro ramo di questo thread
tieni presente che non è nemmeno necessario creare un .htaccess, puoi
gestire la stessa autenticazione attraverso il php
-- 
Vedo gli amici ancora sulla strada, loro non hanno fretta,
rubano ancora al sonno l'allegria all'alba un po' di notte:
e poi la luce, luce che trasforma il mondo in un giocattolo.
Faremo gli occhiali così, Faremo gli occhiali così!

Cujo ha scritto:

Allora una volta spostata la directory dei file di sessione, potresti 
mettere in sessione i valori criptati che ti interessano.
Quando li devi usare li decripti.
Perň la chiave per decriptare devi farla leggere in testa ai tuoi programmi.
Il punto debole potrebbe essere il file con le chiavi per decriptare,
ma con l'aiuto di un encoder tipo Zend dovresti essere abbastanza sicuro 
e protetto.
