Nota: Uno, no estoy seguro de si las consultas sintéticas son la palabra correcta para el riesgo del que estoy hablando. En segundo lugar, aunque estoy considerando el modelo de 3 niveles de aplicaciones, las respuestas generales son bienvenidas en situaciones cliente-servidor donde no es posible la validación del lado del servidor.
Actualmente tengo una página donde haces ciertos cálculos utilizando lo que se llama DHTML. Este cálculo genera una cadena que no tiene un patrón particular como tal. Esta cadena se envía a un script del lado del servidor utilizando AJAX.
Cualquier persona con capacitación básica en estas tecnologías puede leer el código y darse cuenta de que la consulta se envía, es algo como esto:
http://domain.com/script.php?var=theStringSoGenerated
Con la esperanza de explotar un posible defecto, un hacker escribe en su navegador:
http://domain.com/script.php?var=aCompletelyRandomString
Lo hace unas cuantas veces y no ve beneficios evidentes y se cierra, pero en el nivel medio, el script PHP, totalmente indefenso sin una posible validación, actualiza e inserta la cadena aleatoria en la base de datos, lo que afecta su integridad y lleva al desperdicio de recursos.
Pregunta: ¿Cómo puedo proteger mi aplicación contra tales ataques?