Una aplicación no segura podría exponer a los usuarios y los sistemas a varios tipos de daños. Cuando una parte maliciosa usa vulnerabilidades o la falta de funciones de seguridad para causar daños, se denomina ataque. En esta guía, veremos los diferentes tipos de ataques para que sepas qué buscar cuando protejas tu aplicación.
Ataques activos frente a ataques pasivos
Los ataques se pueden dividir en dos tipos diferentes: activos y pasivos.
Ataques activos
Con un ataque activo, el atacante intenta ingresar a la aplicación directamente. Esto se puede hacer de varias maneras, desde el uso de una identidad falsa para acceder a datos sensibles (ataque de suplantación de identidad) hasta el desbordamiento de tu servidor con grandes cantidades de tráfico para que tu aplicación no responda (ataque de denegación de servicio).
Los ataques activos también se pueden realizar a los datos en tránsito. Un atacante podría modificar los datos de tu aplicación antes de que lleguen al navegador de un usuario, mostrar información modificada en el sitio o dirigir al usuario a un destino no deseado. A veces, esto se denomina modificación de mensajes.

Ataque pasivo
Con un ataque pasivo, el atacante intenta recopilar o obtener información de la aplicación, pero no afecta a la aplicación en sí.

Imagina que alguien está escuchando tu conversación con amigos y familiares, recopilando información sobre tu vida personal, quiénes son tus amigos y dónde te juntas. Se puede hacer lo mismo con tu tráfico web. Un atacante podría capturar datos entre el navegador y el servidor para recopilar nombres de usuario y contraseñas, el historial de navegación de los usuarios y los datos que se intercambian.
Defensa contra ataques
Los atacantes pueden dañar directamente tu aplicación o realizar una operación maliciosa en tu sitio sin que tú o tus usuarios lo noten. Necesitas mecanismos para detectar ataques y protegerte contra ellos.
Lamentablemente, no existe una solución única para que tu aplicación sea 100% segura. En la práctica, se usan muchas funciones y técnicas de seguridad en capas para evitar el ataque o retrasarlo más (esto se denomina defensa en profundidad). Si tu aplicación contiene un formulario, puedes verificar las entradas en el navegador, luego en el servidor y, por último, en la base de datos. También puedes usar HTTPS para proteger los datos en tránsito.
Conclusión
Dado que muchos ataques pueden ocurrir sin llegar a tu servidor, a veces es difícil detectar si se están produciendo o no. La buena noticia es que los navegadores web ya tienen funciones de seguridad sólidas integradas. Para obtener más información, consulta el siguiente tema: "Cómo mitiga los ataques el navegador".