Files
live-campus-mcs-p-2027.2/Semaine_11/Jour_04/Exercice 5.3 - Proprietes-sensibles.md
T
gauvainboiche 0d071d2843 Semaine 11
2026-07-11 21:38:00 +02:00

961 B

Exercice 3 — Propriétés sensibles / BOPLA (API3)

Risque OWASP : API3 Broken Object Property Level Authorization.

Contexte : le sérialiseur expose fields = "__all__". Or Equipement possède un champ sensible notes_internes, et le champ proprietaire ne doit pas être imposable par le client (mass assignment).

Consignes :

  1. Ajoutez le champ notes_internes (texte) au modèle s'il n'existe pas ; migrez.
  2. Remplacez fields = "__all__" par une liste explicite de champs qui n'expose pas notes_internes.
  3. Empêchez le mass assignment de proprietaire (read_only_fields) — il doit toujours être défini côté serveur.
  4. Vérifiez : (a) la réponse JSON ne contient pas notes_internes ; (b) un POST qui tente de fixer proprietaire à un autre utilisateur est ignoré (le propriétaire reste l'appelant).

Critères : aucun champ sensible exposé, mass assignment neutralisé, tests probants.