entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Evitar modificar atributros de controles html en browser

Buen día! me he topado con un problema en el sistema web (ASP.NET) que actualmente estamos desarrollando en la empresa.
Surgió la duda de que pasaría si algún extraño lográ entrar al sistema y quiere modificar código desde el browser, un ejemplo:

Digamos que tengo un form, el cual contiene controles con algunos botones deshabilitados, los controles han sido deshabilitados por que el usuario con el que esta logeado no tiene permisos suficientes para realizar x operación; que pasa si este usuario inspecciona el código html y habilita los botones?, lograría realizar la operación.

hay algúna manera de evitar este tipo de cosas?.

Un compañero menciono que hay algunos sitios que al momento de hacer postback valida que el formulario no este modificado desde la primera vez que se accedio a la pantalla, he buscado pero no encuentro nada.

Alguien tendrá alguna idea de evitar esto?

Solo me gustaría orientación de como buscar este problema ya que desconozco este tipo de validación.

Saludos

1 Respuesta

5votos

Leonardo-Tadei Puntos227320

Hola @alejandro Castillo A,

no hay manera de evitar que alguien cambie el código HTML de la página. Ahora existe la posiblidad de inspeccionar el código y modificarlo, pero hace años atrás, lo que se hacía para cambiarla era guardar la página y modificar el HTML con un editor de texto, para luego cargarla localmente con todos los formularios apuntando al sitio original.

Lo que corresponde hacer para preservar la integridad de acceso a los datos, es validar del lado del servidor cada petición, corroborando si el usuario logueado tiene permiso para hacerlo.

No se verifica que el formulario no haya cambiado, porque esto es muy volatil, dado que es habitual hacer cambios en las interfaces: lo que hay que validar es que el usaurio que envía la petición tenga permiso para hacer lo que está haciendo.

Esta validación, si bien es más fácil, no se hace contra los datos de la sesión cuando ingresó el usuario, sino que se busca en la DB cada vez. De esta manera si a un usuario le cambiás de parfil o le revocás permisos, inmediatamente al click siguiente tiene las restricciones habilitadas (de la otra manera, hasta que no salga y se vuelva a loguear, los cambios no tendrían efecto)

El cotrol de acceso siempre va del lado del servidor, porque justamente en un entrono web, no tenemos ningún control sobre el HTML ni el JS que se le envió al usuario.

Saludos cordiales

2votos

carlossevi comentado

Genial la respuesta de @Leonardo-Tadei, simplemente añadir de forma simplificada: las validaciones de verdad se hacen en el servidor. Las validaciones en el cliente (HTML y JS) son útiles para mejorar la interfaz y mostrar información al usuario.

Es incómodo y frustrante que el usuario haga clic en un botón, rellene y envíe todo el formulario y en el siguiente paso se le muestre un mensaje de "no está autorizado..." por eso es mejor controlarlo en la parte del cliente, aunque eso no te exime de controlarlo en el servidor igualmente.

0voto

Alejandro Castillo A comentado

Gracias por la respuesta leonardo, tomare en cuenta esas validaciones que sugieres, ya que actualmente estamos desarrollando un proyecto para tarjeta de crédito y no podemos dejar pasar este tipo de cosas.

saludos

0voto

Leonardo-Tadei comentado

Por nada @alejandro Castillo A,

para ese tipo de proyectos, te recomiendo que contraten alguna consultoría externa para revisar la seguridad. No sólo no podés dejar pasar este tipo de cosas, sino que además es muy sano que un equipo externo lo valide, porque nunca se es bueno chequeando el código propio.

Saludos

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta