cors_policy

Control de orígenes permitidos para peticiones cross-origin desde el frontend

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "cors_policy" with this command: npx skills add davidcastagnetoa/skills/davidcastagnetoa-skills-cors-policy

cors_policy

La política CORS define qué dominios frontend pueden realizar peticiones al API KYC. Una configuración incorrecta (wildcard *) permite a cualquier web maliciosa hacer peticiones en nombre del usuario autenticado.

When to use

Configurar antes de exponer cualquier endpoint. Aplicar tanto en FastAPI (para dev) como en Nginx (producción) — Nginx es el punto de entrada real y es quien envía los headers CORS al browser.

Instructions

  1. En FastAPI para desarrollo (backend/main.py):
    from fastapi.middleware.cors import CORSMiddleware
    ALLOWED_ORIGINS = os.environ["ALLOWED_ORIGINS"].split(",")
    app.add_middleware(CORSMiddleware,
        allow_origins=ALLOWED_ORIGINS,
        allow_methods=["POST", "GET"],
        allow_headers=["Authorization", "Content-Type", "X-Request-ID"],
        allow_credentials=True,
        max_age=3600,
    )
    
  2. En Nginx (producción), en el bloque server:
    set $cors_origin "";
    if ($http_origin ~* "^https://(app\.tudominio\.com|admin\.tudominio\.com)$") {
        set $cors_origin $http_origin;
    }
    add_header "Access-Control-Allow-Origin" $cors_origin always;
    add_header "Access-Control-Allow-Credentials" "true" always;
    add_header "Access-Control-Allow-Methods" "POST, GET, OPTIONS" always;
    
  3. Manejar preflight OPTIONS devolviendo 204 sin pasar al upstream.
  4. Definir ALLOWED_ORIGINS en Vault/config por entorno: dev, staging, producción tienen listas distintas.
  5. Nunca incluir localhost en la lista de producción.
  6. Verificar en tests de integración que peticiones desde origen no permitido reciben 403.

Notes

  • allow_credentials=True requiere que allow_origins sea una lista explícita, nunca ["*"].
  • El preflight request (OPTIONS) no lleva JWT — el middleware CORS debe responder antes del middleware de auth.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

traefik

No summary provided by upstream source.

Repository SourceNeeds Review
General

c4_model_structurizr

No summary provided by upstream source.

Repository SourceNeeds Review
General

fastapi

No summary provided by upstream source.

Repository SourceNeeds Review
General

exif_metadata_analyzer

No summary provided by upstream source.

Repository SourceNeeds Review