VULNERABILIDADES DE APLICACIONES WEB: VALIDACIÓN SÓLO DEL LADO DEL CLIENTE

08.01.2018 08:35
Cualquier validación de entrada de datos que se efectúe sólo de lado del cliente puede ser burlada por un atacante. 
 
Veamos el siguiente ejemplo de archivo .html con la validación de tipo de dato ingresado por el usuario proporcionada por HTML5. El navegador rechazará cualquier dato ingresado que no tenga el formato de una dirección de correo electrónico. Hay formas mucho más complejas de validar en el navegador: 
 
<html>
<form action="direccion.php" method="post">
  Ingrese su dirección de correo electrónico:<br>
  <input type="email" name="correo"><br>
  <input type="submit" value="Enviar">
</form>
</html>
 
siendo "direccion.php": 
 
<?php 
$correo = $_POST['correo'];
echo $correo;
?> 
 
Cualquier hacker podrá cliquear en la opción "Inspeccionar elemento" del navegador, cambiar el tipo de input de "email" a "text" e ingresar en el formulario "<h1>inyección HTML</h1>", logrando perpetrar el ataque. 
 
Todo lo que sea validado del lado del cliente puede ser burlado con mayor o menor facilidad con esta y/o otras técnicas. ¡Tener en cuenta que esto también vale para contraseñas y captchas validados sólo del lado del cliente!
 
La validación del lado del cliente es útil para lograr una mejor experiencia del usuario ya que los errores en el tipo de datos ingresados se resuelven rápidamente en el navegador. El peligro es que el programador termine conformándose con esa validación tan fácil de burlar. Por otra parte en un prueba dinámica manual, por ejemplo, los fallos de seguridad pueden pasar desapercibidos precisamente por esa validación hecha en el navegador.
 
Desde el punto de vista de la Seguridad Informática la omisión de la validación del lado del servidor puede tener consecuencias muy graves. 
 
Para el ejemplo de arriba, "direccion.php" debería ser:
 
<?php 
$correo = $_POST['correo'];
echo strip_tags($correo);
?> 
 
Lo invitamos a hacernos llegar sus comentarios, dudas y/o inquietudes a nuestra dirección de contacto: luis_lavric@hotmail.com. ¡Muchas gracias!