Back-end · 4 mondes · 12 étapes
Auth & sécurité
Mots de passe, jetons signés, failles du web et autorisation, écrits de ses mains.
Progression
0 %
0/12 étapes terminées
Avancé · 9 min de lecture
L'autorisation
Être connecté ne donne pas tous les droits
1Définition
L'autorisation décide, pour chaque requête, si l'utilisateur authentifié peut effectuer cette action sur cette ressource. Elle combine des permissions (ce que son rôle permet) et la propriété (à qui appartient la donnée), et se vérifie toujours côté serveur.
2Principes fondamentaux
01
Fermé par défaut
Tout ce qui n'est pas explicitement permis est refusé.
02
Des permissions par action
supprimer:message plutôt que « est admin » : les rôles évoluent, les actions restent.
03
La propriété à chaque requête
Un identifiant dans l'adresse se modifie en une seconde : vérifier à qui appartient la ressource.
04
Ne rien révéler
Même réponse pour « inexistant » et « à quelqu'un d'autre ».
3Exemples pratiques
Filtrer par propriétaire dans la requête
1SELECT * FROM quetes WHERE id = $1 AND proprietaire = $2;La base ne renvoie jamais la quête d'un autre : l'oubli du contrôle devient impossible.
Les politiques de sécurité par ligne
1-- PostgreSQL / Supabase2CREATE POLICY "chacun ses quetes" ON quetes3 FOR SELECT USING (proprietaire = auth.uid());La règle vit dans la base elle-même : même une requête oubliée dans le code ne peut pas la contourner. PostgreSQL le permet nativement, et Supabase en a fait sa règle de base.
4Erreurs courantes
Se fier à l'interface
À éviter
// le bouton Supprimer n'est affiché qu'aux modérateursÀ faire
// la route vérifie la permissionPourquoi : N'importe qui peut appeler l'adresse directement.
Vérifier l'identité, pas la propriété
À éviter
if (qui) return Response.json(quetes.get(id));À faire
if (quete?.proprietaire === qui.pseudo) …Pourquoi : C'est la faille IDOR, la plus fréquente des API.
Des rôles en dur partout
À éviter
if (qui.role === "admin" || qui.role === "modo") …À faire
if (peut(qui, "supprimer:message")) …Pourquoi : Au premier nouveau rôle, une route sera oubliée.
5Subtilités à connaître
- ◆Les identifiants aléatoires (UUID) rendent l'IDOR plus difficile à exploiter, mais ne le corrigent pas : la vérification reste obligatoire.
- ◆Journaliser les refus d'autorisation aide à repérer quelqu'un qui teste des identifiants.
- ◆Les actions sensibles (paiement, changement de mot de passe) méritent une ré-authentification, même avec une session valide.
6Vérifie ta compréhension
Question 1/3
Score 0
La faille IDOR consiste à…
Envie d'essayer ? Ouvre le Labo et recopie les exemples pour les modifier.