¿No confía en el cliente?

2

Soy un desarrollador web y he estado tratando de aprender un poco acerca de la seguridad, y lo que parece ser el principal principal es confiar en el cliente lo menos posible. ¿Es esta una idea correcta? ¿Para qué situaciones no cubriría la regla / sería incorrecta?

    
pregunta thesecretmaster 13.11.2015 - 00:26
fuente

3 respuestas

1

Es un principio importante, pero no el único.

Digamos que está escribiendo un procesador de pagos, específicamente funciones para enviar dinero. El código de back-end esperaría ciertos parámetros para una transacción, tal vez el número de cuenta de origen (almacenado en un campo html oculto), el número de cuenta de destino y un monto en dólares. Cuando se llama a esta función, arroja el número de cuenta a una consulta SQL para obtener los detalles de la cuenta. La información de la cuenta de esta búsqueda se envía de vuelta al navegador en una página de confirmación.

¿Dónde puede la entrada del usuario causar problemas aquí? En primer lugar, ¿qué sucede si el usuario ingresa un monto negativo en dólares? ¿Qué sucede si el usuario cambia el campo oculto a un número de cuenta que no es el suyo? ¿Qué sucede si el campo del número de cuenta contiene escapes y comandos SQL (inyección SQL) o código JavaScipt (XSS)? Este es un escenario muy simple, pero hay muchas cosas que pueden salir mal. Demasiada confianza en el usuario puede permitir eludir la lógica de negocios prevista o los controles de acceso, así como la exposición a vulnerabilidades de inyección.

Nunca confíes en el usuario; no hay nada en el lado del cliente que pueda evitar que ingresen información inesperada y peligrosa. Valide siempre la entrada y realice verificaciones del lado del servidor en todo.

    
respondido por el multithr3at3d 13.11.2015 - 01:23
fuente
0

Sin embargo, no se recomienda confiar en la validación del lado del cliente, ya que puede ser omitido por un usuario con el uso de un proxy web. El tráfico también es propenso a MITM y puede ser manipulado por otra persona que no sea el Usuario.

Como ha preguntado cuándo puede relajar esta regla a sabiendas, aceptando el riesgo, puede ocurrir cuando la comunicación ocurre con un tercero de confianza. Puede verificar ORIGEN y DOMINIO para estar seguro.

Una situación puede ser cuando utiliza un protocolo de enlace SSL de 2 vías para autenticarse, mantiene los registros de auditoría, el servicio web trata las entradas como texto y no como comandos y toda la comunicación se realiza a través de un canal seguro / dedicado, puede relajarse un poco. .

    
respondido por el Krishna Pandey 13.11.2015 - 00:48
fuente
0

El cliente suele ser el némesis. Pero sobre todo clientes inválidos / falsos. El acuerdo podría ser aprender a confiar en un cliente en lugar de categorizar a todos los clientes de la misma manera.

    
respondido por el nhunsaker 13.11.2015 - 01:45
fuente

Lea otras preguntas en las etiquetas