Validar datos dinámicos recibidos cliente

  • Autor Autor CosmicBetelgeuse
  • Fecha de inicio Fecha de inicio
C

CosmicBetelgeuse

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Hola!

Como sabemos se debe validar los datos en el cliente y en el servidor.

Sin embargo la cosa se complica al validar valores dinámicos generados en el cliente, por ejemplo, un select con unos determinados valores generados según determinadas selecciones en cliente, podria ser esto:

<select name="datos">
<option value="2">Texto</option>
<option value="35">Texto</option>
<option value="12">Texto</option>
<option value="40">Texto</option>
</select>

Yo lo que suelo hacer para saber que el usuario no ha cambiado ningún valor de los option (mediante el inspector del navegador) además del valor le paso una especie de "token". Dicho "token" es el resultado de: sha1(id de sesion del cliente + valor select), por tanto queda así (son token inventados):

<select name="datos">
<option value="2|token=4u95or09093e939oe0o">Texto</option>
<option value="35|token=4u95or09ewr093e4e0o">Texto</option>
<option value="12|token=3295or03493e9399ir0w">Texto</option>
<option value="40|token=0995or09ol3e939r8iere">Texto</option>
</select>

¿Es correcto?, ¿Qué opináis?

Gracias!
 
No es necesario. Sólo debes comprobar que el Usuario puede seleccionar las opciones 2, 35, 12 y 40. Si por ejemplo te llaga la opción 73, ya sabes que han estado haciendo trampas y deberías de rechazar ese valor.
 
Asi como te dijeron mas arriba, como ya conoces los valores que puedes recibir, simplemente valida antes de continuar si el valor que te llega es el esperado o esta por lo menos dentro de tu lista de esperados, sino, pues le mandas a una pagina de error.