Perché utilizzare una hashkey univoca per gli invii di moduli?

3

Ho più moduli e uso AJAX per inviarli. Ho chiesto al mio capo se aveva bisogno di un formato specifico per l'ID del modulo e mi ha detto di generare un hash univoco e di tenerlo in sessione; controllalo ogni volta che il modulo ritorna per assicurarti che si tratti di un invio di moduli valido e non di qualcuno che ha appena colpito un endpoint.

Che cosa significa e perché è utile? Come mi aiuta la sicurezza?

Ho letto un paio di articoli come Le 3 cose che dovresti sapere su hashCode () ma non sono ancora sicuro ...

    
posta nikunjM 15.07.2015 - 17:21
fonte

2 risposte

4

La tecnica che il tuo capo ti ha detto di usare è uno dei metodi più comuni per prevenire richiesta cross-site contraffazione . Penso che probabilmente ti confondi con i molteplici significati di "hash" che in questo caso si riferiscono probabilmente a un hash sicuro (ad esempio SHA256) piuttosto che a un hash che potresti utilizzare per una tabella hash.

    
risposta data 14.08.2015 - 20:14
fonte
0

Perché dovrei farlo?

Quindi creiamo un modulo e avremo un endpoint in cui i dati possono essere inviati.

Questo significa che chiunque può inviare i dati lì e vedere cosa succede.

Quindi dobbiamo convalidare su due cose:

  1. che viene inviato da un utente (che .NET gestirà per noi) e
  2. che stanno inviando i dati tramite un modulo richiesto e non solo volenti o nolenti

Quindi il pulsante di invio richiede un hash di convalida che viene restituito con il modulo, quindi lo confrontiamo con il valore memorizzato nella sessione dell'utente (sul server) quando abbiamo creato il modulo.

Se corrispondono, elaboriamo i dati, altrimenti generiamo un errore.

Modo per farlo:

Scrivi una funzione che converte l'ID genificato e crea l'hash per esso.

Ottieni il modulo, decrittografalo per ottenere l'ID originale, confrontalo con l'id memorizzato nella sessione e voilà.

    
risposta data 15.07.2015 - 17:41
fonte

Leggi altre domande sui tag