¿Qué es la ciberseguridad?
La ciberseguridad es el trabajo de mantener los sistemas digitales confiables cuando las personas, el software y las redes hacen cosas que no esperabas.
Esa definición es amplia a propósito. Puede incluir fraude bancario, malware, phishing, infraestructura en la nube, defensa de redes, privacidad, respuesta a incidentes y una decena de especialidades más. Este manual no pretende cubrir todo eso.
Este manual trata sobre seguridad de aplicaciones para desarrolladores: la seguridad del código que escribes, revisas y despliegas.
Con eso basta para empezar. No tienes que aprender cada especialidad de seguridad de una sola vez.
Eso significa que nos importan preguntas como estas:
- ¿Qué pasa si un usuario cambia un campo oculto del formulario antes de enviarlo?
- ¿Puede un cliente leer el pedido de otro cliente?
- ¿Qué pasa si se filtra un token de inicio de sesión?
- ¿Se puede llamar a una ruta miles de veces hasta que la aplicación se ponga lenta?
- ¿El servidor verifica los datos, o solo confía en el navegador?
¿Por qué estas preguntas?
Todas ocurren dentro del código base, la API, la consulta a la base de datos, la cookie de sesión y el esquema de validación. Esa es la parte de la ciberseguridad hecha a la medida de un desarrollador, que es lo que enseña este manual.
Cómo llegamos hasta acá
La palabra es más nueva que el problema. Las computadoras empezaron como máquinas compartidas en laboratorios, luego pasaron a oficinas, hogares, teléfonos y sistemas de pago. Cuando el software empezó a manejar dinero, identidad y registros privados, romper el software dejó de ser una broma y se convirtió en una forma de robar, espiar, interrumpir o suplantar identidad.
La web agudizó ese cambio. Un navegador es una puerta de entrada amigable, pero envía texto que tu servidor tiene que interpretar: URLs, headers, cookies, formularios, cuerpos JSON, subidas de archivos.
Cada solicitud es una pequeña historia que el navegador le cuenta a tu servidor, y el servidor tiene que decidir cuánto de esa historia creerle.
Por qué los desarrolladores la necesitan
Los primeros sitios web eran básicamente documentos. Visitabas una página, la leías, hacías clic en un enlace y seguías de largo. Las aplicaciones web modernas son distintas. Procesan pagos, almacenan datos personales, gestionan identidad, llaman a APIs, suben archivos y toman decisiones en nombre de los usuarios.
Una función normal puede convertirse en un bug de seguridad cuando confía en lo que no debe. Un cuadro de búsqueda puede convertirse en un punto de inyección. Una página de perfil puede filtrar los datos de otra persona. Un botón útil para exportar datos puede convertirse en un problema de denegación de servicio si una sola solicitud le pide a la base de datos demasiado trabajo.
La buena noticia es que la mayor parte de esto se puede aprender. No necesitas convertirte en criptógrafo ni en ingeniero de redes para escribir código de backend más seguro. Necesitas unos cuantos hábitos:
- Fijarte por dónde entra la información al sistema.
- Verificar las decisiones en el servidor.
- Tratar la identidad y los permisos como preguntas separadas.
- Pensar en qué podría salir mal antes de lanzar la función.
- Conocer lo suficiente las clases comunes de bugs como para reconocerlas.
Ese es el camino que sigue este manual.
El servidor tiene que preguntarse: "¿Yo mismo sé eso con certeza?". Esa sola pregunta carga con buena parte del curso.
El camino desde aquí
El camino empieza con una idea simple: el código seguro empieza por cómo pensamos.
Por eso la primera sección empieza con STRIDE y OWASP. STRIDE te ayuda a preguntarte qué podría salir mal mientras una aplicación todavía se está diseñando. OWASP te da nombres para los bugs que aparecen una vez que las aplicaciones reales ya están funcionando en el mundo.
Primero construimos la mentalidad, y luego pasamos al trabajo concreto de desarrollo: entrada de datos no confiable, XSS, inyección SQL, validación, autenticación, tokens, OAuth, límites de tasa y throttling.
Después de eso, los capítulos convierten esas preguntas en código.
Esto no es un recorrido completo por la ciberseguridad. No cubrimos análisis de malware, herramientas de pentesting, defensa de redes, marcos de cumplimiento normativo ni operaciones de seguridad.
Esos temas importan. Están fuera del trabajo que hace este manual.
El trabajo aquí es más acotado y más práctico: ayudarte a construir aplicaciones de backend más difíciles de usar mal, más fáciles de razonar y más seguras de poner frente a usuarios reales.
Eso significa rutas, esquemas, cookies, tokens, consultas y middleware. Hay mucho que aprender, sin pretender que un solo manual pueda enseñar cada campo de la seguridad.
Hacia dónde va esto
La palabra quedó acotada: seguridad de aplicaciones, el código que escribes, revisas y despliegas. El alcance está definido, y las preguntas que vale la pena hacerse ya están sobre la mesa.
Lo que falta es el hábito de hacerlas. Cómo pensar en seguridad es donde empieza eso, con los límites de confianza y el reflejo de mirar tu propio código como lo haría alguien con malas intenciones.

