Probador de CORS
Pruebe y depure las políticas de Cross-Origin Resource Sharing (CORS) y las solicitudes de API
¿Qué es CORS? CORS (Cross-Origin Resource Sharing) es un mecanismo que permite a los navegadores web realizar solicitudes de origen cruzado (dominio, protocolo o puerto diferente) desde scripts que se ejecutan en el navegador.
Encabezados CORS Clave
Access-Control-Allow-Origin: Especifica qué orígenes tienen permitido acceder al recursoAccess-Control-Allow-Methods: Especifica qué métodos HTTP están permitidosAccess-Control-Allow-Headers: Especifica qué encabezados HTTP se pueden usarAccess-Control-Allow-Credentials: Especifica si se deben incluir credenciales (cookies, autenticación HTTP)
💡 Soluciones CORS
Soluciones del Lado del Servidor
1. Express.js (Node.js):
const cors = require('cors');
app.use(cors({
origin: 'https://example.com',
methods: ['GET', 'POST'],
credentials: true
}));2. Spring Boot (Java):
@CrossOrigin(origins = "https://example.com")
@RestController
public class ApiController { ... }Soluciones del Lado del Cliente
1. Usando un Servidor Proxy:
// package.json (React)
"proxy": "http://localhost:3001"2. JSONP (solo GET):
// Solución limitada pero simple
fetch('api?callback=handleResponse')🔧 Configuración de CORS por Entorno
Next.js
// next.config.js
module.exports = {
async headers() {
return [
{
source: '/api/:path*',
headers: [
{
key: 'Access-Control-Allow-Origin',
value: '*'
}
]
}
]
}
}Nginx
location /api {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods
"GET, POST, OPTIONS";
add_header Access-Control-Allow-Headers
"Content-Type, Authorization";
}Apache
# .htaccess
Header always set Access-Control-Allow-Origin "*"
Header always set Access-Control-Allow-Methods
"GET, POST, OPTIONS"
Header always set Access-Control-Allow-Headers
"Content-Type, Authorization"Configuración de CORS por Entorno
Escenarios de Prueba
- • Solicitud Simple: Pruebe el comportamiento básico de CORS con solicitudes GET
- • Solicitud Previa: Pruebe las solicitudes previas con métodos PUT/DELETE
- • Encabezados Personalizados: Pruebe las solicitudes con el encabezado de Autorización
- • Credenciales: Pruebe las solicitudes con cookies
- • Manejo de Errores: Pruebe los escenarios de falla
Consideraciones de Seguridad
- • Tenga cuidado con el uso de comodines (*) debido a riesgos de seguridad
- • Principio de privilegio mínimo: Solo permita los orígenes y métodos necesarios
- • Restricciones de credenciales: Solo permita orígenes específicos al incluir credenciales
- • Revisión regular: Revise y actualice periódicamente las políticas de CORS
Consejos de Depuración de CORS
Herramientas de Desarrollo del Navegador
- • Verifique las solicitudes OPTIONS en la pestaña Red
- • Busque mensajes de error de CORS en la Consola
- • Verifique los encabezados CORS en los Encabezados de Respuesta
Herramientas Útiles
- • Probador de CORS (esta herramienta)
- • Postman (para pruebas de API)
- • Comando curl (para pruebas directas del servidor)