Newsgroup: it.comp.lang.perl
Titolo: [CGI] controllo di sessione

 ICQ# 33538863
Undergraduate Computer Science Student at University of Bologna, Italy
SysAdm of 
verdicchio.students.cs.unibo.it
 (130.136.3.134)
	"Information wants to be free"

pagine, l'utente "pluto" invece non l'ha ancora data".
Potresti generare una mescolanza tra un numero casuale e l'indirizzo IP
di chi sta visitando il tuo sito. Ad esempio, se l'utente e` 193.42.81.34
puoi creare:
123456-193428134
dove "123456" e` un numero casuale, tanto per discriminare due naviganti
che hanno lo stesso indirizzo IP (magari sono entrambi dietro la stessa
rete mascherata). A questo punto scambi la stringa creata tra server e
browser utilizzando i cookie oppure l'extended path info. Poi fai tutte
le verifiche del caso dal lato server.
	Michele.
-- 
Michele Beltrame
m...@io.com
http://www.io.com/~mick/

le verifiche del caso dal lato server.
Troppo comodo !!! :-)
Non posso usare neanche i cookie, posso ricorrere solo a http e html,
nient'altro, con i cookie era facile, bastava invarne uno.


nient'altro, con i cookie era facile, bastava invarne uno.
C'e` la possibilita` di utilizzare le extended path info anziche'
i cookie. Ad esempio, se il tuo script si chiama "site.cgi" la URL
diventa qualcosa del tipo;
/bin/site.cgi/12345-1923421
Come vedi la URL di fatto "continua" con un altro slash. E` il
server che si occupa di capire quando finisce la parte significativa
ed iniziano le informazioni estese. Tali informazioni ti vengono
poi tornate nella variabile d'ambiente PATH_EXTENDED. Ad esempio
in Perl avrai che:
$ENV{'PATH_EXTENDED'}
contiene:
12345-1923421
Non sono naturalmente sicuro che questa feature sia disponibile con
qualunque tipo di server web, ma credo che sia abbastanza diffusa.
Con Apache funziona senz'altro.
	A presto, Michele.


Perche' io non ho la variabile di cui parli tu ?
OPS, si chiama PATH_INFO. ;) Vedo che pero` nella lista che
mi hai datto non c'e` comunque: puo` darsi che venga impostata
solo se effettivamente contine qualcosa. Prova a chiamare il
tuo CGI passandogli anche una parte extra e vedi che succede.


 Michele.
Quindi, se ho capito bene, la stringa mandata sarebbe "autorizzata" per
quella sessione.
Cioč dal lato server viene controllata e verificata ogni volta che si
richiede una pagina (dinamica).
E' cosi?
E se fosse cosi, fino a quando quella stringa sarebbe autorizzata?  quando
finirebbe la "sessione"?
Io avevo pensato a mandare ogni volta user e pwd memorizzati in campi
hidden o nei cookie : forse č poco sicuro?

hidden o nei cookie : forse č poco sicuro?
Infatti quella dei campi hidden e' una delle soluzioni che ho valutato, che
funziona perfettamente, il brutto e' che devi sostituire tutti i link con
dei tasti di tipo submit.
Per quanto riguarda la fine della sessione e' una scelta di politica,
io ho pensato di associare ad ogni numero random un timestamp, e dopo un
certo tempo (ad. es 24 ore) la rimuovo dal file degli accessi consentiti.


 dei tasti di tipo submit.
Anch'io  ho avuto questo problema , ma ho risolto usando javascript e dei
links normali ( per intenderci href)
utilizzando soltanto il metodo POST.
Per quanto riguarda il file degli accessi, per eliminarlo dovresti avere
accesso al crontab....
Doc.

finirebbe la "sessione"?
Di fatto e` autorizzata fino a quando l'utente chiude il browser, 
oppure esce e rientra successivamente nel sito tramite altir link,
perdendo quindi la aprte estesa della URL. Naturalmente, se l'utente
si salva un bookmark, mantiene anche tali informazioni estese
indefinitamente. Tu potresti voler associare una data di creazione
(lato server) a ciascuna stringa, in modo da limitarne la validita`
nel tempo.
	Michele.
-- 
Michele Beltrame
m...@io.com
http://www.io.com/~mick/
==> Visita il sito di it.comp.lang.perl: 
http://www.perl-it.org
==> Sei del triveneto e vuoi unirti ai Perl Mongers? Scrivimi!

 nient'altro, con i cookie era facile, bastava invarne uno.
Cos'e'? Un compito in classe o una tesina, per avere restrizioni del genere?
Se l'utente non vuole usare i cookie, non usi il servizio!
Perche' bisogna complicarsi la vita per le paranoie altrui? :)
Maurizio
-- 
Maurizio M. Munafo' / 
mmmu...@netscape.net
"Consider Phlebas, who was once handsome and tall as you" (T.S.Eliot)

utilizzando soltanto il metodo POST.
Io ho risolto in Perl !!! (non sono un grande fan di Java).
In pratica: quando devo inviare la pagina sul browser non faccio altro che
leggerla dal disco parsandola.
Durante il parsing sostituisco tutti i link con altri link che puntano ad
un cgi che prende 2 argomenti: l'identificativo di sessione e la pagina da
mostrare.


