El navegador aplica varias reglas para aislar sitios entre sí y limitar daños. La base es la política de mismo origen (SOP); CORS permite excepciones controladas; y CSP restringe de dónde se carga el contenido. Juntos sostienen gran parte de la seguridad del lado cliente.
Política de mismo origen (Same-Origin Policy, SOP)
Regla del navegador: el código de un sitio solo puede acceder a datos del mismo origen. Un origen = protocolo + dominio + puerto.
https://banco.comyhttps://malo.com→ distinto origen → bloqueado.- Impide que una web lea respuestas, cookies o DOM de otra. Es un pilar de la seguridad web.
CORS (Cross-Origin Resource Sharing)
Mecanismo que relaja la SOP de forma controlada, para que orígenes distintos cooperen legítimamente (ej. una web que consume una API en otro dominio).
- Solo funciona si el servidor lo autoriza con cabeceras como
Access-Control-Allow-Origin. - ⚠️ Mal configurado (ej.
Access-Control-Allow-Origin: *con credenciales) expone datos a cualquier origen.
CSP (Content Security Policy)
Cabecera donde el sitio declara de qué fuentes confía para cargar scripts, estilos, imágenes, etc. Es una lista blanca que mitiga sobre todo el XSS.
- Si se inyecta un script desde un origen no permitido, el navegador no lo ejecuta.
- Ejemplo:
Content-Security-Policy: script-src 'self'→ solo scripts del propio sitio.
Resumen comparativo:
| Mecanismo | Función | Mitiga |
|---|---|---|
| SOP | Aísla orígenes por defecto | Robo de datos entre sitios |
| CORS | Permite excepciones controladas | (Habilita cooperación segura) |
| CSP | Restringe fuentes de contenido | XSS, inyección de scripts |
Por qué importa en seguridad: estos controles definen qué puede y qué no puede hacer el código en el navegador. Configurarlos mal abre la puerta a robo de datos entre sitios y a XSS.
Conecta con cookies/sesiones, con XSS y CSRF (Hacking Web) y con las cabeceras de seguridad vistas en el tema 2.