Todas las lecciones Read in English

Seguridad a fondo · Unidad 20

Aplicaciones web

Sigue una solicitud por comprobaciones de identidad, permisos de recursos, intérpretes y protecciones del navegador.

10 minlista

ATT&CK TA0001 Initial Access

Para prepararteArquitecturas de aplicaciones webAutenticación

Después de esta lección puedes

  • describir propósito, datos y cambio previsto de una solicitud
  • distinguir prueba de cuenta, permiso sobre recursos e interpretación segura
  • explicar por qué las protecciones del navegador complementan al servidor

Lecciones de esta unidad

Explorar 27 lecciones de este tema
  1. HTTP y proxiesLee solicitudes, comprende las cookies y separa la protección del transporte de los permisos.12 min
  2. Mapear una superficie webConstruye un inventario útil de recursos, identidades, flujos de datos e incertidumbre.9 min
  3. Comprender JavaScript del clienteSigue los datos en el navegador y distingue configuración pública de secretos privilegiados.9 min
  4. Cross-site scriptingComprende los contextos del navegador y por qué una sola regla de codificación no sirve para todos.11 min
  5. Inyección SQLSepara la estructura de las consultas de sus valores y distingue prevención, permisos e impacto.9 min
  6. Inyección de comandos y argumentosDistingue la interpretación de una shell de la que hace un programa de sus argumentos.9 min
  7. Archivos, cargas y límites de rutasSigue el contenido desde su nombre hasta almacenamiento, procesamiento y descarga autorizada.9 min
  8. Fronteras de confianza del servidorComprende descargas de URL, plantillas, XML y deserialización como decisiones distintas.9 min
  9. Autenticación y accesoSepara identidad, sesiones, validación de tokens y permiso sobre cada recurso.10 min
  10. APIs y GraphQLRevisa permisos de objetos y propiedades, además del coste de trabajo en distintos estilos de API.9 min
  11. Proteger aplicaciones comunesRelaciona inventario, identidad, avisos del proveedor y medidas sostenibles de protección.9 min
  12. Sesiones: después de iniciar sesiónSigue un acceso desde su creación hasta la renovación, revocación y cierre.11 min
  13. Límites del navegador: origen, CORS y CSRFDistingue quién puede leer una respuesta de quién puede enviar una solicitud.10 min
  14. Autorización: decidir sobre cada objetoUn acceso válido y un identificador impredecible todavía no demuestran permiso.11 min
  15. Separa los datos de las instruccionesSigue un texto por su validación, una consulta y una página.10 min
  16. Lógica de negocio: pasos válidos, mal resultadoEntiende dinero, estados, reintentos y reglas que el sistema debe conservar.11 min
  17. Cada solicitud cruza un límiteRevisa un cambio de reserva separando datos aceptables de acciones permitidas.4 min
  18. La salida depende del contextoDecide por qué un nombre mostrado con seguridad no garantiza un enlace seguro.4 min
  19. Estructura y valores de consultaRevisa una búsqueda sin confundir valores enlazados con estructura seleccionable.4 min
  20. Subir archivos es un cicloSigue un documento por su aceptación, procesamiento y entrega.4 min
  21. Las búsquedas del servidor necesitan políticaSepara el permiso para importar una imagen del permiso para usar la red del servidor.4 min
  22. Las cookies no prueban intenciónRevisa un cambio con cookies sin confundir reconocimiento de sesión con intención.4 min
  23. Las cachés deben conservar privacidadElige una política de caché que conserve el público permitido de una página personalizada.4 min
  24. Reintentar sin repetir consecuenciasUsa un registro de reservas para razonar sobre reintentos tras una respuesta incierta.3 min
  25. Comprobar y actualizar deben concordarLee la secuencia de dos procesos y protege la última plaza disponible.4 min
  26. Errores útiles con detalle limitadoConvierte un fallo incierto de reserva en mensajes útiles para dos públicos.4 min
  27. Caso práctico: revisar acceso a documentosUtiliza roles, documentos y notas proporcionadas para decidir qué debe permitir el servidor y qué evidencia falta.11 min

Una aplicación web recibe mensajes y toma decisiones. Reservar un libro puede exigir sesión válida, permiso sobre la cuenta, un ejemplar disponible y una actualización coherente. La seguridad incluye todas esas reglas, además de la pantalla de acceso.

HTTP define mensajes y semántica de aplicación. Utiliza transporte subyacente: HTTP/3 emplea QUIC y versiones anteriores suelen usar TCP. HTTPS protege la comunicación, pero no decide quién edita un objeto ni garantiza reglas de negocio correctas.

Servidor e interpretación seguraSolicitud y sesión validada alimentan comprobaciones. Datos y salida necesitan protección según destino.SolicitudCampos enviadosSesiónValidadaServidor compruebaPermiso + reglas de negocioUso de datosAPI segurasSalidaContexto seguro
La solicitud necesita comprobaciones de cuenta, recurso e interpretación. El navegador contribuye sin sustituir los permisos del servidor.

Comprende el propósito de la solicitud

Una solicitud tiene método, destino, cabeceras y, a veces, cuerpo. Sus campos llevan identificadores, texto, evidencia de sesión y opciones. El nombre de un campo no demuestra que su valor sea fiable.

En una reserva ficticia, identifica libro, cuenta y acción deseada. El servidor debe obtener identidad fiable de una sesión validada, comprobar permisos y aplicar reglas. Una etiqueta de cuenta enviada no constituye prueba.

Un mapa de solicitudes documenta propósito, entradas, cambios, sensibilidad y permisos. Incluye lecturas y escrituras: puede haber divulgación no autorizada sin modificar el registro. Un código de respuesta correcto no demuestra autorización ni procesamiento empresarial correctos.

Autenticación y autorización

La Autenticación establece confianza en una cuenta. Una cookie puede mantener sesión; JWT es un formato; una clave API puede identificar una aplicación; un método con certificado prueba posesión según una configuración de confianza. Ninguno sustituye toda validación.

La Autorización decide si ese actor puede actuar sobre este recurso ahora. Puede aplicarse a usuarios autenticados o anónimos. Importan propiedad, rol, organización, etapa del proceso y otras reglas. Ocultar un botón ayuda a la interfaz, pero no impone permisos a una API.

Un socio puede reservar libros. ¿Puede editar todas las reservas?

No. El permiso para usar una función y el permiso sobre un objeto son decisiones distintas. El servicio debe comprobar propietario y roles legítimos del personal en cada acción protegida.

Los datos deben seguir siendo datos

Una Inyección permite que contenido no fiable influya en instrucciones o sintaxis. El intérprete determina la prevención: operaciones de base de datos parametrizadas, codificación de salida según contexto, API seguras y opciones dinámicas restringidas cumplen funciones distintas.

No existe una función de escape universal para SQL, HTML, órdenes y cualquier plantilla. Parametrizar tampoco cubre automáticamente identificadores u otros elementos que la API no admite como parámetros; requieren diseño y validación adecuados.

Archivos y solicitudes del servidor tienen límites adicionales. Una ruta o URL sintácticamente válida puede señalar un recurso no permitido. Restringe recursos y operaciones independientemente del análisis sintáctico.

Cada protección del navegador tiene una función

La Política de mismo origen limita el acceso de scripts entre orígenes, especialmente la lectura de respuestas. Permite ciertas solicitudes y recursos incrustados entre orígenes. CORS declara acceso seleccionado para navegadores; no sustituye autenticación ni autorización. Una lectura bloqueada no demuestra que la solicitud careciera de efectos.

Las cookies tienen protecciones distintas. Secure restringe transporte, HttpOnly limita acceso desde scripts y SameSite influye en el envío entre sitios. El comportamiento depende de reglas del navegador y configuración.

CSRF utiliza credenciales que el navegador añade automáticamente a una solicitud no deseada. Tokens adecuados, comprobaciones de origen y política de cookies ayudan a validar su legitimidad. XSS implica ejecución no autorizada de scripts. Puede realizar acciones o leer datos de la página aunque HttpOnly impida leer directamente la cookie. Robar cookies no es su único impacto.

Elige una lección para profundizar

Tema Lección siguiente
Mensajes y procesos HTTP y mapeo
Navegador JavaScript y XSS
Intérpretes SQL e inyección de órdenes
Recursos Archivos y servicios del servidor
Identidad y clientes Autenticación y API
Decisiones de sesión y objeto Ciclo de sesión y autorización de objetos
Reglas entre peticiones Lógica de negocio y cambios de estado sin carreras
Aplica las ideas Revisión de acceso a documentos: decide con personas, recursos y política aportados.
Software empaquetado Aplicaciones comunes

Un hallazgo útil relaciona conducta observada, regla prevista, datos o acción afectados y corrección concreta. Distingue observaciones de suposiciones y conserva solo la evidencia depurada necesaria para explicarlo.

Sigue una petición a través de cinco decisiones

Considera una biblioteca ficticia. Lina pide cancelar la reserva R42. La sesión identifica a Lina, R42 pertenece a Jo y la política permite cancelar solo al propietario o a un bibliotecario. Lina tiene el rol de miembro. Estos datos bastan para resolver el permiso: rechazar esta cancelación.

La autenticación funcionó, pero solo aportó una entrada a la autorización. El identificador R42 selecciona el objeto; no establece una relación con Lina. El servidor debe evaluar actor, acción, recurso y política vigente antes de modificar el estado. También debe devolver únicamente información que el solicitante pueda recibir.

PrediceLa interfaz oculta el botón de cancelar R42. ¿Cambia eso la decisión del servidor?

La decisión sigue siendo rechazar. Ocultar una acción no disponible ayuda al usuario, pero la interfaz cliente no es la autoridad del servicio. La misma política debe cubrir navegador, móvil y otros clientes admitidos.

Añade ahora una cancelación permitida de una reserva de Lina. El permiso no resuelve la concurrencia: la reserva podría haberse completado ya. El servicio necesita una transición de estado definida y una actualización coherente. Si después muestra la explicación de Lina, ese texto necesita un contexto de salida apropiado. Si almacena la respuesta en caché, la política de uso compartido debe corresponder a su audiencia.

Una revisión útil sigue cinco preguntas: quién actúa, qué objeto interviene, qué acción está permitida ahora, cómo se interpretan los datos y dónde puede conservarse o compartirse el resultado. Los registros aportados establecen la decisión sobre R42; no demuestran que el código desplegado la aplique. Para eso hacen falta evidencias de implementación y verificación.

Términos que viste

InyecciónAutenticaciónAutorizaciónPolítica de mismo origenCSRF

Compruébate

Sin reloj ni penalizaciones. Lee cada explicación y vuelve a intentarlo cuando quieras.

  1. Lina es miembro; la reserva R42 pertenece a Jo. Solo propietarios o bibliotecarios pueden cancelar. ¿Qué debe hacer el servicio?

    Ver la respuesta

    Respuesta correcta: Rechazarla porque Lina no cumple ninguna de las relaciones permitidas. Aplica la regla al actor, acción y recurso concretos; el rol de miembro no basta.

  2. Lina puede cancelar su reserva, pero esta se completó antes de la actualización. ¿Qué control adicional aborda esto?

    Ver la respuesta

    Respuesta correcta: Comprobar y aplicar la transición permitida de forma coherente con la actualización. Un actor autorizado también necesita una operación válida en el estado actual, incluidos los cambios concurrentes.

  3. El cliente móvil omite la regla de botones ocultos de la web. ¿Dónde debe seguir siendo efectiva la política de cancelación?

    Ver la respuesta

    Respuesta correcta: En el servicio que realiza la operación protegida para todos los clientes admitidos. La presentación puede variar mientras el servicio aplica de forma consistente la regla sobre el recurso.

  4. Una explicación de cancelación se muestra como texto plano. ¿Qué diseño conserva mejor ese propósito?

    Ver la respuesta

    Respuesta correcta: Usar un renderizador de texto y conservar por separado los controles de acceso a la cancelación. El contexto de salida y la autorización de la acción son requisitos independientes.

  5. ¿Qué registro aportado permitiría distinguir si la operación concreta de otro origen cambió el estado del servidor?

    Ver la respuesta

    Respuesta correcta: Un registro correlacionado de la aplicación con la decisión de permiso y el estado resultante. Conecta la petición concreta con su tratamiento y efecto, sin inferir el resultado de un mensaje del navegador.

Pruébalo

  • EscribeEscribe la decisión para Lina y R42 indicando actor, acción, recurso, regla y resultado. Después cambia un dato para permitir la cancelación. Añade un requisito de transición de estado y un registro necesario para verificar que el servidor aplica la regla.
Referencias