Spesso abbiamo bisogno di inviare id di entità sul lato client.
Come possiamo proteggere questi dati (in particolare gli ID)?
Anche se crittografiamo la stessa chiave ogni volta, può essere identificata tramite l'analisi.
Ad esempio, se criptò id "1" per dire "ae!" (usando qualsiasi algoritmo), lo stesso id può essere usato anche in seguito.
Quindi dovremmo usare l'ID di sessione come chiave per inviare i dati al lato client (questo convaliderà solo la sessione up-to dei dati è attiva)? Oppure potremmo aggiungere casualmente una stringa all'id "1", crittografarla e quindi inviarla al client (anche questa può essere inviata la prossima volta)?
O esiste un altro modo?
Che cosa è meglio fare per questo tipo di sicurezza?
Sto usando .Net MVC C #. Ma penso che la domanda sia irrilevante per la piattaforma.
Facciamo un esempio.
Nel seguente link id è indicato in datasource, che è testo semplice, quindi chiunque abbia conoscenze tecniche può modificarlo (usando la console di sviluppo del browser).
Quindi IMHO dovrebbe essere crittografato, per renderlo immutabile (perché il valore modificato non è accettabile a causa della crittografia).