¿Cómo verificar que un objeto generado por el lado del cliente es genuino?

1

Sé que las mejores prácticas generales indican no confiar en nada generado por el cliente.

Con eso en mente, quiero escribir una aplicación HTML5 que utilice el navegador para generar varios objetos del lado del cliente antes de enviarlos de vuelta al servidor. Estos pueden ser imágenes, texto, números, lo que sea, pero todos ellos generados por JavaScript del lado del cliente, para no cargar el servidor web y mantener las cosas receptivas.

Digamos que estamos usando un algoritmo para generar texto para los propósitos de este ejemplo.
El usuario selecciona uno o más de estos pasajes de texto y la aplicación los envía de vuelta al servidor.

El algoritmo para generarlos necesariamente existe en el lado del cliente, al igual que el método para enviar los datos al servidor.

¿Cómo puedo verificar que los datos que se publican en el servidor han sido generados por el algoritmo del lado del cliente y no simplemente editados en Firebug o en las herramientas para desarrolladores? Cualquier algoritmo de suma de comprobación / hash que pudiera usar también tendría que estar presente en el lado del cliente y, por lo tanto, también vulnerable a la manipulación.

¿Se puede hacer esto sin confiar en la seguridad por oscuridad de los campos 'ocultos' <input> y el código confuso?

    
pregunta Widor 01.08.2012 - 15:38
fuente

1 respuesta

5

No puedes probarlo, no. Está en la máquina del cliente, por lo que cualquier código o información que les entregue es de ellos para cambiar. En el mejor de los casos, puede hacerlo difícil, con técnicas de ofuscación y DRM, pero es probable que presente otros problemas.

La única solución a este problema es realizar operaciones en el servidor.

    
respondido por el Polynomial 01.08.2012 - 15:44
fuente

Lea otras preguntas en las etiquetas