Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

A7: cross-site scripting o XSS

3/13
Recursos

¿Cómo asegurar la entrada de datos en aplicaciones web?

El mundo digital está lleno de riesgos, y uno de los más persistentes ha sido cómo manejar los datos que los usuarios introducen en nuestras aplicaciones y sitios web. Incluso plataformas gigantescas como Twitter han experimentado vulnerabilidades en este aspecto. Por ello, es crucial no confiar ciegamente en la información que los usuarios proporcionan. Veamos cómo podemos examinar y validar estos datos para proteger mejor nuestras aplicaciones.

¿Por qué no debemos confiar en la entrada del usuario?

Los datos ingresados desde el frontend pueden representar un riesgo significativo si no se manejan adecuadamente. Ya sea mediante formularios o cualquier otra fuente de entrada, es esencial ser escépticos y validar la información de manera rigurosa:

  • Inyección de código: Los atacantes podrían insertar comandos maliciosos que comprometan la seguridad.
  • Datos no filtrados: La falta de filtrado y validación puede llevar a errores inesperados.

¿Cómo utilizar HTML para la validación de entradas?

HTML ofrece herramientas para ayudar en la validación de datos antes de que lleguen al servidor. Aunque no es infalible, puede ser un primer filtro efectivo:

  1. Atributo type en <input>: Ayuda a definir qué tipo de datos se espera, como:

    • type="email" para correos electrónicos.
    • type="number" para números, común en teléfonos.
    • type="url" para direcciones de internet.

    Esto ajusta automáticamente el teclado y la experiencia del usuario, especialmente en dispositivos móviles.

  2. Limitaciones de HTML: Solo confiar en HTML no es suficiente. Los atacantes pueden manipular el DOM para omitir estas validaciones de manera sencilla.

¿Cómo incorporar JavaScript para una seguridad reforzada?

JavaScript entra en juego para ofrecer una capa adicional de protección que HTML no puede proporcionar por sí solo:

  • Bibliotecas de validación: Utilizar herramientas como "Jab" para validar formularios en diversos frameworks aumenta la flexibilidad y eficacia:
    • Compatible con múltiples frameworks.
    • Proporciona validaciones personalizadas.
  • Saneamiento de datos: Más allá de validar, es importante limpiar los datos para eliminar caracteres y expresiones que no sean seguras.

¿Cuáles son las mejores prácticas al validar formularios?

Asegurar la integridad y seguridad de los datos es un proceso multifacético. Aquí algunas prácticas recomendadas:

  • Siempre validar en el lado del servidor: Nunca dependa únicamente del frontend.
  • Saneamiento sistémico: Asegúrese de que cualquier dato pase por procesos de limpieza para excluir elementos potencialmente peligrosos.
  • Pruebas exhaustivas: Realizar pruebas constantes y ajustar las validaciones según el comportamiento de los datos que se están manejando.

En conclusión, proteger la entrada de datos es una tarea continua y esencial para mantener segura una aplicación web. Invierte tiempo en la educación constante sobre mejores prácticas y herramientas emergentes para estar siempre un paso adelante en seguridad.

Aportes 1

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

🎌 A7: cross-site scripting o XSS

Ideas/conceptos claves

Saneamiento de datos consiste en un conjunto de filtros que aplicamos a los datos para hacerlos seguros en un contexto específico

Recursos

https://github.com/jquense/yup

Apuntes

  • Es un ataque común, que ni siquiera Twitter pudo evitar y que puede pasar muchas veces sin darnos cuenta

“Nunca confíes en el texto que ingresa el usuario”

  • Debemos tener mucho cuidado con el texto que el usuario ingresa en el HTML
  • la etiqueta input puede ayudarnos a verificar los datos de entrada
<input type="email" />
<input type="tel" />
<input type="number" />
<input type="url" />
  • Facilitamos el teclado y layout del mismo para que únicamente ingrese el tipo de dato deseado
  • También ayuda en la experiencia de usuario en el dispositivo móvil dando un teclado optimizado para el tipo de dato
  • Es muy fácil saltar la validación de HTML cambiando los atributos del DOM

Validación en formularios

  • HTML5
  • Yup
    • Funciona con cualquier framework y Liberia
    • Ayuda con la validación de datos
  • Saneamiento de datos
    • Es importante realizar este proceso, ya que el usuario puede ingresar datos que no debamos permitir en nuestro código
📌 **RESUMEN:** XSS Ocurre cuando un atacante usa una aplicación web para enviar código malicioso, generalmente en forma de un script del lado del navegador, a un usuario final diferente. Para evitar es importante validar las entradas del usuario