2012-06-15 10 views
5

Sono nuovo di Django ma sto lavorando al tutorial sul sito Django per creare un sondaggio.Gli ospiti di Django votano solo una volta il sondaggio

Qual è il modo migliore per farlo in modo che gli ospiti (nessuna registrazione/accesso) possano votare una sola volta in un sondaggio?

  • IP (Non voglio IP perché le persone che condividono una rete possono votare solo una volta).
  • Cookie (l'utente può eliminare il cookie ma sembra l'approccio migliore).
  • Sessione (Se l'utente chiude il browser, la sessione cambierà).

Immagino che Cookie sia l'approccio migliore ma esiste un modo migliore per Django?

risposta

7

C'è una soluzione indipendente sul framework server in uso:

Evercookie ti dà cookie praticamente irrevokable. Usali, se vuoi quel livello di persistenza dei dati.

evercookie è una soluzione per la memorizzazione dei dati in biscotti e vari altri luoghi (come la memoria utilizzata da Flash "cookie", di HTML5 LocalStorage ecc). Se uno di questi posti viene cancellato, la prossima visita sul sito verrà popolata nuovamente con i dati. L'unica cosa di cui hai bisogno sono i dati memorizzati in uno dei 13 luoghi usati da Evercookie e la prossima visita lo riempie nuovamente negli altri 12 posti.

È piuttosto difficile sbarazzarsi di tali cookie, quindi si prega di prendere in considerazione, se i vostri utenti effettivamente accettano di essere rintracciati in quel modo. Alcuni di loro certamente non sarebbero d'accordo.

1

Se è così importante che le persone possano votare solo una volta, prendere in considerazione la creazione di un sistema di registrazione/accesso di base comunque. Un ospite può sempre utilizzare più computer per sviare le votazioni mentre la registrazione dell'account consente almeno di rintracciare quali indirizzi di posta elettronica vengono utilizzati per votare. Ci vuole anche un po 'più di impegno per distorcere il voto in questo modo. Se è importante ma non di importanza salvavita, utilizzerei l'approccio cookie per gli ospiti anonimi.

Problemi correlati