AZ Tools

Constructor de Encabezados CORS

Red

Construye los encabezados de respuesta que un servidor necesita enviar para satisfacer una solicitud cross-origin de un navegador. Incluye Allow-Origin, Allow-Methods, Allow-Headers, Expose-Headers, Allow-Credentials, Max-Age, y una pista Vary: Origin. Marca los foot-guns comunes: combinar * con credentials (los navegadores lo bloquean), aceptar Origin: null (un atacante puede falsificarlo), o pedirle al navegador que cachee el preflight por un tiempo irrazonablemente largo.

Presets
Allow-Methods
Encabezados de respuesta
Access-Control-Allow-Origin: https://example.com
Access-Control-Allow-Methods: GET, POST
Access-Control-Allow-Headers: Content-Type, Authorization
Access-Control-Allow-Credentials: true
Access-Control-Max-Age: 600
Vary: Origin

Aplica estos a la respuesta del preflight OPTIONS *y* la solicitud real. Las cachés edge necesitan Vary: Origin si haces eco de Origin.

Cómo usar

  1. Empieza desde un preset que coincida con tu escenario.
  2. Establece el origen (* para totalmente público, o haz eco del Origin de la solicitud server-side para APIs con credentials).
  3. Elige los métodos y encabezados que tu endpoint realmente acepta — más estrecho es más seguro.
  4. Copia los encabezados a tu servidor, edge worker, o middleware del framework.

Preguntas frecuentes

¿Puedo usar * y credentials juntos?
No. La especificación fetch rechaza respuestas que combinan Access-Control-Allow-Origin: * con Access-Control-Allow-Credentials: true. O quitas credentials, o haces eco del Origin real de la solicitud server-side después de validarlo contra una lista de permitidos.
¿Por qué la recomendación Vary: Origin?
Si haces eco de Origin en Allow-Origin, las cachés downstream deben variar su respuesta almacenada según el encabezado Origin de la solicitud; de lo contrario pueden servir la respuesta CORS de un sitio a la solicitud de otro sitio. Vary: Origin le dice a las cachés que usen ese encabezado como clave.

Herramientas relacionadas