2015-05-01 9 views
5

Ho sempre dei dubbi riguardo alla semplice memorizzazione di una chiave di entità utilizzando un input nascosto nelle mie viste. È troppo facile anche per un utente curioso modificare questo valore in una console del browser ed eventualmente finire per aggiornare un'entità a cui tale utente non dovrebbe avere accesso.Un modo più sicuro per mantenere la chiave di entità in una vista di modifica?

Esiste un modo fattibile per mantenere questo valore nelle viste senza aggiungere troppa complessità con la crittografia, ecc.?

+2

[questo articolo] (http://blog.slatner.com/2010/ 01/20/SecuringFormValuesInASPNETMVC.aspx) discute un metodo per impedire la manomissione dei campi nascosti, ma in ogni caso dovresti controllare se l'utente ha il permesso di modificare/accedere all'entità nel controller –

+1

Se sei preoccupato per la manomissione di qualcuno con un campo nascosto, quindi potresti metterlo in 'Session', quindi sul post controllare che il valore inserito corrisponda al valore' Session'. Come ha detto @StephenMuecke, se la tua sicurezza ha bisogno di essere così serrata, le autorizzazioni per modificare a questo livello dovrebbero essere controllate nella tua logica aziendale. – mattytommo

+5

Non si deve fare affidamento su alcun tipo di offuscamento o convalida lato client. L'unica soluzione è quella di convalidare che l'utente corrente abbia tutte le autorizzazioni per modificare l'entità postata. –

risposta

0

Salvarlo in una variabile javascript. Quindi sul postback crea una funzione js e ne fai l'uso più adatto (se usi i postback AJAX dovrebbe essere facile;))

Problemi correlati