¿Cómo evitar que el usuario elimine el atributo deshabilitado y edite el rol manualmente?

-3

Supongo que el usuario tiene conocimientos generales de HTML.

Tengo este código:

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

Esta es una página de perfil editada para un usuario y una función se preselecciona desde el servidor. Si el usuario utiliza "inspeccionar elemento" y elimina el atributo "deshabilitado" del elemento select , entonces puede cambiar el rol y guardarlo.

¿Cómo puedo evitar que el usuario cambie la función?

    
pregunta Afsar 08.05.2015 - 08:21
fuente

2 respuestas

6

No confíe en el cliente.
Es decir, la seguridad en el lado del cliente no es seguridad.

Cualquier comprobación de seguridad que realice, o las suposiciones que realice, en el cliente (también conocido como HTML, javascript, etc.) son irrelevantes y deben realizarse en el servidor.
Cuando el usuario envía el formulario, simplemente no permite los valores a los que el usuario no está autorizado. Y mientras lo hace, ni siquiera le dé al usuario un cuadro de selección para cambiar el rol ... ¡pero no asuma que no lo cambió, incluso sin seleccionar! Simplemente no acepte ningún otro valor y aplique esto en el servidor .

    
respondido por el AviD 08.05.2015 - 11:07
fuente
4

Esto es seguridad del lado del cliente. No puede proteger completamente sus datos en el cliente.

Esto significa que el usuario siempre tiene la posibilidad de "cambiar" su rol. Puse esto entre comillas porque realmente no puede cambiar el rol, solo te envía su perfil con otro rol. Él podría hacer esto como usted dijo, inspeccionar el elemento y eliminar atributos. Pero también podría enviar una solicitud falsa de Http sobre Fiddler o similar.

Lo que debe hacer es conocer la validación del lado del servidor . Debe verificar si el usuario tiene permiso para cambiar su rol o no. Solo maneja los valores que esperas y elimina los demás.

¡No confíes en los datos que vienen de un cliente!

    
respondido por el greenhoorn 08.05.2015 - 11:07
fuente

Lea otras preguntas en las etiquetas