22 puntos por ragus 2025-01-10 | Aún no hay comentarios. | Compartir por WhatsApp

1. Entiende que CORS es un parche temporal para compensar fallas de diseño del navegador.

  • CORS (intercambio de recursos entre orígenes cruzados) aborda problemas de seguridad causados por credenciales implícitas en solicitudes entre orígenes.
  • El comportamiento predeterminado del navegador expone a los usuarios al riesgo de ataques XSRF.
  • CORS intenta mitigar estos problemas, pero tiene limitaciones fundamentales dentro del ámbito de la seguridad.

2. CORS evita leer el resultado de solicitudes entre orígenes, pero no bloquea la solicitud en sí.

  • fun-games.example no puede leer los datos de your-bank.example, pero aún puede ejecutar solicitudes que cambian el estado, como una transferencia de fondos.
  • Esto se debe a la forma en que el navegador maneja las cookies y las credenciales de manera predeterminada.

3. La seguridad efectiva entre orígenes comienza por ignorar las credenciales implícitas.

  • Elimina o permite explícitamente cookies y credenciales similares en solicitudes entre orígenes.
  • Usa middleware que aproveche los encabezados Sec-Fetch-* para filtrar o eliminar cookies entre orígenes.

4. Las credenciales explícitas son una alternativa más segura que las credenciales implícitas.

  • Usa el encabezado Authorization para tokens de autenticación en lugar de cookies.
  • Las credenciales explícitas evitan el uso indebido de credenciales entre distintos sitios.
  • No es adecuado para sitios renderizados en el servidor, pero es el mejor enfoque para APIs y aplicaciones del lado del cliente.

5. Implementa cookies SameSite para limitar el uso de credenciales entre orígenes.

  • Usa SameSite=Lax para que, de forma predeterminada, las cookies no se incluyan en solicitudes entre orígenes.
  • Elige SameSite=Strict para una política más estricta. Sin embargo, esto puede afectar la usabilidad (por ejemplo, cerrar sesión después de navegar desde otro origen).

6. Adopta una política de CORS simple y segura.

  • Política predeterminada: Access-Control-Allow-Origin: * y Access-Control-Allow-Methods: * solo permiten acceso anónimo.
  • Esta política desactiva las credenciales implícitas en solicitudes entre orígenes, protegiendo al sitio contra el uso indebido accidental de credenciales.

7. No hagas la política de CORS demasiado compleja en nombre de la seguridad.

  • Configurarla con demasiado detalle puede crear una falsa sensación de seguridad.
  • Los proxies de CORS y otros rodeos pueden evadir las políticas impuestas por el navegador, anulando los esfuerzos por restringir el acceso.

8. Entiende el movimiento más amplio hacia valores predeterminados web más seguros.

  • Los navegadores están explorando enfoques como State Partitioning (Firefox), Tracking Prevention (Safari) y CHIPS (Chrome) para resolver el problema de las credenciales entre orígenes.
  • Estas iniciativas buscan mejorar la seguridad y la privacidad del usuario al limitar el uso compartido de cookies y credenciales entre orígenes.

9. Reconoce que CORS es una solución imperfecta.

  • La compatibilidad hacia atrás de CORS añade complejidad sin resolver por completo el problema de seguridad subyacente.
  • Los navegadores están adoptando lentamente nuevos enfoques para mitigar estos problemas, pero el progreso no es uniforme.

Aún no hay comentarios.

Aún no hay comentarios.