Newsgroup: it.comp.www.php
Titolo: Login da un solo pc

Ciao a tutti,
avrei necessità di realizzare un controllo degli accessi in modo che
gli utenti possano accedere al sito, effettuando il login, solo dal pc
con cui sono entrati la prima volta. Ho visto che esistono sistemi del
genere... Qualcuno ha idee in merito?
Grazie per il vostro aiuto
Carmelo
-
http://carmelosaffioti.blogspot.com
-

 genere... Qualcuno ha idee in merito?
Dicci prima di tutto se stai parlando di Intranet o Internet.
-- 
Jax


Sto parlando di internet...

 genere... Qualcuno ha idee in merito?
sicuro ?
ci fai un esempio?


Anche a me sono venuti in mente i cookies per realizzare qualcosa del
genere. Ma cosa potrei memorizzare e successivamente controllare in un
cookie in modo da essere sicuro che sia lo stesso pc?

Grazie per le vostre risposte ragazzi.
Penso che potrei risolvere il mio problema controllando il MAC address
del client... Sapreste dirmi come potrei fare per ottenere il MAC
address del client mediante un Javascript ?
Grazie mille in anticipo per il vostro aiuto
Carmelo

 address del client mediante un Javascript ?
Non puoi. E nemmeno in Java, da quanto so. Forse su client Windows puoi 
trovare un bug in un ActiveX che ti consenta di farlo.
Bye.


anche se potessi, il mac address si può cambiare - non dà alcuna
sicurezza in più

Cosa mi dite dei certificati client? Potrebbero essere utili allo
scopo?

Oppure controlli ip, cookie e user e pass...
di + anche a me non viene in mente. Anche se potresti salvarti su una 
tabella o file, come vuoi, qualche identificativo del client. Se 
cancella il cookie ti richiede l'accesso e tu gli sbianchi il codice che 
ti sei salvato. Se il codice esiste ed è uguale a quello che ricavi dal 
client, entra... se il codice manca allora è il primo accesso e 
inserisci il codice, se il codice c'è ma il client o non ha il cookie o 
non corrisponde utente e pass, allora generi errore e ti inventi il 
perchè...
riassumo
codice_user = cookie+user
if(primo_accesso) {
	//salvi "codice_user" su una tabella
	// e lo fai accedere
}
else if(codice_user esiste e il codice che ti ricavi dall'utente sono 
uguali) {
	//lo fai accedere
}
else if(codice_user esiste e il codice che ti ricavi dall'utente sono 
diversi) {
	//generi errore di incongruenza e gli mostri il problema. Poi se
	//ti chiama e ti accerti che è lui allora sbianca il
	//"codice_user" che ti sei salvato e lo riconsideri come un
	//primo accesso.
}
Spero che come logica funzioni :)

 scopo?
direi che è l'unica cosa che può funzionare. Devi mettere su una tua
CA (se non vuoi comprare i certificati da una CA "ufficiale") e
organizzare un sistema in cui distribuisci e tieni traccia dei
certificati client.
bye!

Stavo pensando ad una via alternativa tramite cookies... in pratica
dovrei creare un cookie con un lungo periodo di vita e fare in modo
che non ci possano essere contemporaneamente più accessi dello stesso
utente.
Avreste consigli su come farlo?


carmelo ha scritto:

login ->salvi id sessione
rilogin  ->salvi id sessione
pc 1 disconnesso
if(PHP_sessionid!=$dbsessionid)
ovviamente permette di avere piu firefox sullo stesso pc che accedono a
pagine diverse
bega se ti rubano il sessionid
se chiudo e rientro non succede nulla
se un altro si logga mi sconnette
per chi e' il sito porno ?

Vorrei realizzare un sistema di login che catturi il MAC address di
chi si logga. E' possibile farlo in PHP? Altrimenti, avreste qualche
idea?

 chi si logga. 
di chi si logga ... dove?
in una pagina web php? 
in tal caso, non credo proprio, a prescindere dal linguaggio

 si logga. E' possibile farlo in PHP? Altrimenti, avreste qualche idea?
No, non lo puoi fare in nessun linguaggio server-side, e nemmeno in 
qualche linguaggio client-side, a meno di bug di sicurezza.
L'unica cosa che puoi fare e` impostare un cookie sul browser al primo 
login, e rifiutare tutte le connessioni che non riportino quel cookie, con 
tutte le rogne del caso (l'utente cancella il cookie, l'utente cambia 
browser, l'utente installa un cookie-blocker, un proxy in mezzo ti azzoppa 
il cookie, ecc.)
Bye.