2010-08-25 7 views
5

Supponiamo che tu stia scrivendo un'applicazione di indagine e desideri in qualche modo garantire che i risultati siano sicuri dal punto di vista dell'utente. In parole semplici, so di quale IP sei venuto, ma voglio assicurarmi che tu dorma bene la notte sapendo di non sapere nulla delle tue risposte. Non riesco a memorizzare IP in forma grezza.Come creare un'applicazione di indagine semplice e sicura?

Ho bisogno di garantire 1 cosa però, cioè che rispondi alle domande una volta. Quindi, una volta che il tuo PC è entrato con alcuni dati, ho bisogno di riconoscere che il tuo PC ha già risposto al sondaggio.

Qualche suggerimento su come gestirlo al meglio?

Grazie -mac

+0

Grande domanda - questo è il motivo per cui non mi fido di "sondaggi anonimi" sul posto di lavoro. Considerare anche cosa succederebbe se si usasse un gruppo di server proxy (improbabile). Sospetto che non puoi garantire nessuno dei due :) –

+0

Giusto. Il capo vuole fare un sondaggio e sinceramente non vuole sapere chi ha detto cosa. Sono curioso, ma hey, ha detto il capo, nessuno può saperlo ..Qualsiasi approccio tu abbia sperimentato sarebbe bello – JAM

+6

In realtà hai due problemi, trattare i dati in modo sicuro e convincere qualcuno che hai a che fare con i dati in modo sicuro :) –

risposta

3

Non è possibile garantire uno di questi. Tutto quello che puoi fare è alzare la barra in modo che sia più difficile aggirarla. Se qualcuno vuole veramente aggirare il tuo tracciamento, può farlo se ne conosce abbastanza sul tuo sistema. La cosa buona è che la maggior parte delle persone non vuole disturbarsi o non sapere come.

È possibile generare un hash crittografico e memorizzarlo in un cookie sul browser delle persone se si desidera impedire il problema del proxy. Molti siti Web fanno questo per mantenere la creazione della sessione per tracciare l'autenticazione. Questo è qualcosa come usare un HMAC per generare qualcosa che identifichi il browser con una chiave univoca che non può essere falsificata. Se cancellano il loro browser anche se non sarai in grado di rintracciarli.

L'hash unidirezionale di un indirizzo IP è un modo per mantenere traccia del tuo IP, ma lo stesso IP esegue sempre lo stesso valore in modo da poter stabilire se qualcuno lo sta facendo. Tuttavia, se vanno a un internet cafe viola, possono inviarlo di nuovo. Dovresti usare SHA1, MD5, ecc. Per quello.

È possibile fare la stessa cosa con l'indirizzo e-mail e cancellarlo. Per convincere le persone a voler partecipare, invia i risultati al loro indirizzo email invece di visualizzarli nel browser. Le persone devono semplicemente aver fiducia che non faranno cose cattive con la loro email.

Altre idee potrebbero essere se si sa a chi si desidera inviare il sondaggio. Genera un numero casuale che identifica la singola risposta. Quindi invia i link alle persone. Verranno quindi inviati con quel numero e non si rintracciano le e-mail -> numero casuale, quindi non è possibile correlare le risposte con l'indirizzo e-mail. Una volta che un numero casuale viene usato una volta che non gli permetti di inviarlo di nuovo. Traccia le risposte una volta. Mostra risultati molte volte.

È possibile combinare alcuni di questi insieme per cercare di aggirare le carenze dell'altro.

5

Creare un one-way hash dell'indirizzo IP (e qualsiasi altro attributo identificativo univoco), e memorizzare l'hash con la risposta. In questo modo nessuno può cercare l'indirizzo IP per una risposta, ma è possibile confrontare l'hash con le risposte precedentemente inviate per garantire che le persone inviino il modulo una sola volta.

Non c'è molto che si possa fare per convincere qualcuno a rispettare la propria privacy. Basta non abusare della fiducia, e le persone lo risolveranno.

(Per avere un'idea su come creare un hash in java vedi How can I generate an MD5 hash?)

+0

Fantastico! Questo è simile al modo in cui Gmail non memorizza le nostre password, ma piuttosto hash. Questo risolve metà del problema, quindi già mi dimostra che mi sbaglio. –

+0

Dovresti ** pesantemente ** iterare l'hash (piccolo spazio delle chiavi ...). Ma anche allora, se vuoi essere in grado di verificare l'hash in un tempo ragionevole, l'avversario potrebbe scegliere un indirizzo IP e controllare se corrisponde all'hash o no. Può ridurlo a un intervallo più piccolo di 2^32. –

+0

Questa idea presenta due problemi: 1. Più dipendenti che condividono lo stesso computer. Bloccherà il secondo dipendente dal completamento del sondaggio. 2. Un dipendente che utilizza più computer per bypassare il dipendente, una garanzia di indagine. Ma concordo molto con "Non c'è molto che puoi fare per convincere qualcuno a rispettare la loro privacy, ma non abusare della fiducia, e la gente lo risolverà". – emory

Problemi correlati