CORS

NestJS 🟢 Junior

Définition

Cross-Origin Resource Sharing : mécanisme HTTP qui permet a un frontend sur un domaine différent d'accéder a l'API. Configure via app.enableCors().

Analogie

Comme un visa d'entrée : il autorise les visiteurs de certains pays (origines) a accéder au territoire (API).

Exemple de code

app.enableCors({
  origin: ['https://monsite.com', 'https://admin.monsite.com'],
  methods: ['GET', 'POST', 'PUT', 'DELETE'],
  credentials: true,
});

Cas d'usage

Permettre au frontend SPA sur un autre domaine de communiquer avec l'API backend.

Anti-pattern

Configurer origin: '*' avec credentials: true, ce qui est interdit par les navigateurs et insecurise.

Termes liés

#security#interview

En entretien

  1. Explique-moi ce qu'est CORS et à quoi ça sert.

    CORS, c'est le mécanisme HTTP qui permet à un frontend hébergé sur un domaine différent d'accéder à l'API, configuré via app.enableCors(). C'est comme un visa qui autorise certaines origines à entrer sur le territoire de l'API.

  2. Quand est-ce que tu as besoin de configurer CORS concrètement ?

    Quand ton frontend SPA est sur un domaine différent de ton API backend et qu'il doit communiquer avec elle.

  3. Quel est le piège classique à éviter avec CORS ?

    Mettre origin: '*' en même temps que credentials: true : c'est interdit par les navigateurs et ça insécurise l'API, il faut lister explicitement les origines autorisées.

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre