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?