Retour à la leçon
Mission

Mission : le middleware CORS qui accepte tout le monde

Repérer une configuration CORS dangereuse dans du code réel et la remplacer par une liste blanche stricte.

Contexte

Un audit de sécurité de l'API Technologik trouve ce middleware en production :

python
@app.middleware("http")
async def bad_cors(request, call_next):
    response = await call_next(request)
    origin = request.headers.get("origin", "*")
    response.headers["Access-Control-Allow-Origin"] = origin
    response.headers["Access-Control-Allow-Credentials"] = "true"
    return response

Un site totalement étranger à Technologik, recettes-de-cuisine.example, parvient à faire des appels authentifiés vers l'API depuis le navigateur d'un utilisateur déjà connecté.