Come implementare un sistema di autenticazione senza accesso

4

Sto cercando di creare un sistema di autenticazione molto lento in grado di tracciare un utente e collegare dati / commenti inviati a un utente specifico. Le presentazioni sono essenzialmente anonime, ma un utente potrebbe voler modificare la sua presentazione / commento in un secondo momento.

Voglio che l'esperienza sia il più agevole possibile, quindi non voglio chiedere agli utenti di registrarsi per un account e quindi accedere ogni volta. Non ha senso in quanto le loro osservazioni non sono nel loro nome e per un altro utente che naviga nel sito, non c'è modo di collegare un invio ad un utente specifico (si pensi ai commenti anonimi su un post di un blog o pastie). Tuttavia, l'utente deve avere la possibilità di modificare (almeno a breve termine) il contenuto che ha pubblicato.

Il modo in cui immagino di farlo sarebbe quello di inserire un identificatore univoco in un cookie sulla macchina degli utenti. Questo mi consentirebbe di collegare una submission ad un utente, e mentre quel cookie è rimasto sul computer degli utenti, permetterei a loro di modificare il loro contenuto. Ovviamente, se il cookie viene perso o se l'utente accede al sito da un browser diverso, non sarebbe in grado di modificarne il contenuto, ma questo non è davvero un problema, può sempre inviare nuovamente un nuovo contenuto.

C'è un modo migliore per farlo? Come posso implementarlo in modo che l'utente possa modificare i propri dati per il maggior tempo possibile.

    
posta mrwooster 14.04.2012 - 00:38
fonte

5 risposte

4

Se vuoi il più lungo e flessibile, implementa OpenID e richiedi loro di registrarti. Fatto correttamente, è poco più di un paio di clic del mouse. Scopri com'è facile entrare in uno dei siti di scambio di pacchi.

Se questo è troppo lavoro per te / i tuoi utenti, allora un cookie è davvero l'unica buona scelta: puoi generare una stringa di query unica e farteli un segnalibro, ma se non si registreranno con OpenId, probabilmente non vorrai tenere traccia di un URL.

    
risposta data 14.04.2012 - 07:25
fonte
4

Un approccio interessante potrebbe essere quello di consentire agli utenti di creare una password per ogni voce. Nessun nome utente / profilo / registrazione - solo insieme al post - una password. Probabilmente la password dovrebbe avere alcune linee guida rigorose per impedire che il tuo sito si trasformi in uno spam da muro a muro. Probabilmente lo farei anche dopo un ragionevole lasso di tempo (solo tu puoi decidere cosa sia "ragionevole"). Ciò ti porterà alla scadenza dei cookie o ai problemi non sullo stesso computer.

    
risposta data 14.04.2012 - 06:37
fonte
1

Potresti voler visualizzare un SQRL . Questo è un meccanismo di accesso piuttosto nuovo che fornisce esattamente cosa cerchi: accesso anonimo e ripetibile per un utente, utilizzando un ID utente stabile (per server).

Potresti voler associare un nome utente, una password, un indirizzo, ecc., a questo ID utente, ma questo è tutto facoltativo.

SQRL è in fase di sviluppo da parte dell'esperto di sicurezza Steve Gibson su grc.com.

    
risposta data 15.08.2014 - 08:14
fonte
0

Chiedi ai tuoi utenti di inserire un nome e un indirizzo e-mail prima di creare il cookie. Associa il loro indirizzo email all'identificatore di quel cookie nel tuo database. Fornire un accesso limitato al tuo sito web.

Se l'utente decide di registrarsi, quindi chiedigli di compilare un modulo. Se utilizzano lo stesso indirizzo e-mail del cookie, associano tutti i contenuti associati a quel cookie al loro account appena creato. Quindi ora possono sempre modificarlo.

    
risposta data 14.04.2012 - 06:51
fonte
-7

Modo semplice? Prendi il loro indirizzo IP. Non è perfetto (cosa succede se ci sono molte persone dietro lo stesso router, cosa succede se il loro indirizzo IP cambia, e se hanno pubblicato da lavoro / starbucks / il loro telefono, ecc.) Ma tutto quello che devi fare è registrare $ _SERVER ['REMOTE_ADDR' ] di ogni utente che pubblica ... quindi abilita la modifica solo se proviene da quell'indirizzo IP.

Esempio:

if($_SERVER['REMOTE_ADDR'] == $comment_author_ip_address_in_database){
    <stuff here for editing the comment/post>
}
    
risposta data 14.04.2012 - 02:24
fonte

Leggi altre domande sui tag