Come impedire all'utente di rimuovere attributi disabilitati e modificare manualmente il ruolo?

-3

Quindi suppongo che l'utente abbia una conoscenza generale dell'HTML.

Ho questo codice:

<select name="role" id="role" disabled>
    <option value="Admin">Admin</option>
    <option value="Moderator" selected>Moderator</option>
    <option value="Subscriber">Subscriber</option>
</select>

Questa è una pagina di profilo modificata per un utente e un ruolo è preselezionato dal server. Se l'utente usa "inspect element" e rimuove l'attributo "disabled" dall'elemento select , può cambiare il ruolo e salvarlo.

Come posso impedire all'utente di modificare il ruolo?

    
posta Afsar 08.05.2015 - 08:21
fonte

2 risposte

6

Non fare affidamento sul client.
Cioè, la sicurezza sul lato client non è sicurezza.

I controlli di sicurezza che fai, o le supposizioni che fai, sul client (ovvero HTML, javascript, ecc.) sono irrilevanti e devono essere eseguiti sul server.
Quando l'utente invia il modulo, semplicemente non consente alcun valore a cui l'utente non è autorizzato.
E mentre ci sei, non fornire nemmeno all'utente una casella di selezione per cambiare il ruolo ... ma non dare per scontato che non l'abbia cambiato, anche senza una selezione! Semplicemente non accettare nessun altro valore e applica questo sul server .

    
risposta data 08.05.2015 - 11:07
fonte
4

Questa è la sicurezza lato client. Non sei in grado di proteggere completamente i tuoi dati sul client.

Questo significa che l'utente ha sempre la possibilità di "cambiare" il suo ruolo. Lo metto tra virgolette perché non è in grado di cambiare il ruolo, ti manda solo il suo profilo con un altro ruolo. Potrebbe fare questo come hai detto tu, ispezionare l'elemento e rimuovere gli attributi. Ma potrebbe anche inviare una falsa richiesta Http su Fiddler o simili.

Ciò che devi sapere è la convalida sul lato server . Devi controllare, se l'utente è autorizzato a cambiare il suo ruolo o meno. Gestisci solo i valori che ti aspetti e lascia gli altri.

Non fidarti dei dati provenienti da un cliente!

    
risposta data 08.05.2015 - 11:07
fonte

Leggi altre domande sui tag