2011-12-28 10 views
5

Voglio impedire agli utenti di votare più di una volta nel mio sito Web, ho usato due metodi per farlo, ma nessuno lo fa bene !!

Come posso impedire agli utenti di votare più di una volta?

  1. utilizzando biscotto.
    il problema: gli utenti possono eliminare il cookie e tornare a votare ancora e ancora ..

  2. utilizzando la tabella di database.
    Il problema: gli utenti non dovrebbero essere obbligati a registrarsi nel mio sito Web!

Quindi, come posso risolvere questo problema?

+0

indirizzo IP ....? – Ben

+1

@Ben - Se l'ISP dell'utente fornisce l'IP dinamico, allora? – Bibhu

+0

@Ben cosa succede se l'utente vota dal computer aziendale? tutti gli utenti in questo paese impediranno di votare! – dotfreelancer

risposta

5

Non penso che tu abbia molte opzioni in quanto non costringi gli utenti a registrarsi. È necessario utilizzare la sessione o i cookie. Come indicato nei commenti, puoi anche controllare l'indirizzo IP. Ma se il pubblico previsto utilizza l'indirizzo IP dinamico assegnato dal proprio ISP, anche questa soluzione ha avuto esito negativo.

Se possibile si può chiedere all'utente di iscritti con il loro facebook/google id, come StackOverflow sta facendo

0

Non c'è un modo infallibile per ottenere ciò che si desidera da un'applicazione Web e soprattutto senza richiedere agli utenti di registrarsi .

6

Hai le tue due risposte, devi decidere quale sia il migliore. Nessuna opzione sarà a prova di proiettile. Si tratta di rallentarli e quale livello di efficacia è accettabile per te.

Un cookie è generalmente il modo accettabile per farlo. Sì, i cookie possono essere cancellati, ma se il desiderio di impedire la doppia votazione è importante per, la registrazione è l'unico modo efficace per impedirlo. Qualsiasi altro meccanismo potrebbe probabilmente essere battuto da coloro che lo desiderano. Potresti usare qualcosa come Evercookie, ma generalmente non penso che sia una buona pratica farlo. Se rendi il tuo processo di registrazione semplice, ma efficace, alcuni utenti lo faranno.

Un indirizzo IP è altrettanto difettoso della maggior parte degli IP ridisegnati non assegnati in modo statico. Qualcuno potrebbe ripristinare il proprio modem e ottenere un nuovo indirizzo IP. O peggio, qualcuno potrebbe ripristinare il proprio modem, ottenere un indirizzo IP che ha già visitato il sito e non essere in grado di votare. Un altro scenario sono gli utenti che stanno dietro NAT. Se 200 persone condividono un IP con NAT, solo uno di loro sarà in grado di votare.

È possibile ottenere creativo con l'indirizzo IP però. Continua a usare il cookie, perché sarà efficace. Se inizi a rilevare più voti dallo stesso indirizzo IP (perché hanno cancellato i loro cookie), visualizza uno CAPTCHA. Se lo non è qualcuno cerca di abusare del sistema, quindi ha ancora l'opportunità di votare. Questo aiuterà a sconfiggere il voto automatico e rallenterà gli utenti abbastanza che abusare del tuo sistema di voto non vale la pena. Anche questo, può essere sconfitto, è il livello di efficacia che è accettabile per te. Anche la registrazione non è efficace al 100%, ma probabilmente la più efficace. Cosa impedirebbe a qualcuno di registrarsi molte volte con indirizzi email diversi?

+0

sì, il CAPTCHA è la parola incasinata .. grazie. – dotfreelancer

0

Questo sito (Stack Overflow) funziona correttamente, mediante la registrazione. L'IP è una pessima idea perché tutti i componenti di un proxy/server non possono votare.La maggior parte delle persone ha browser multipli, non è nemmeno necessario cancellare il voto di voto per votare di nuovo, basta usare un altro browser. Come accennato, OpenID è l'impatto più basso + il più alto percorso di sicurezza. Possono aggirare questo tramite più account.

Problemi correlati