TP1re année15 livrables
RGPD & données personnelles
La base patients de GSB a été volée. Derrière chaque nom, une vraie personne, et une loi qui la protège : le RGPD. Tout futur développeur doit la connaître — car c'est TOI qui manipuleras ces données dans ton code.
Par Josselyn C., prof de BTS SIO. Publié le , mis à jour le .
- Objectif
- comprendre ce qu'est une donnée personnelle, le RGPD (principes, bases légales, droits, acteurs, obligations) et ce qu'il impose au développeur
- On manipule
- des cas concrets à qualifier au regard du RGPD + des bouts de code SLAM
- Durée
- ~3 h 30 en autonomie · Pré-requis : intro cybersécurité, bases de données
- Pour qui
- SLAM et SISR, 1re année
- Prérequis
- Une introduction à la cybersécurité et les bases des bases de données.
Compétences : C3.1 Protéger les données à caractère personnel
Le RGPD n'est pas que du droit : c'est une contrainte de conception qui change ta façon de coder.
Avant de commencer
Pourquoi le RGPD te concerne (en tant que dev)
Dès que tu crées une appli qui stocke des noms, des emails, des adresses… tu manipules des données personnelles. Le RGPD (Règlement Général sur la Protection des Données) encadre strictement ce que tu as le droit d'en faire. Ce n'est pas qu'une affaire de juristes : c'est une contrainte technique qui influence ton code — ce que tu stockes, comment, combien de temps, qui peut le lire. Mal le respecter coûte très cher, et c'est au programme de l'E7 (épreuve cybersécurité).
Comment travailler ce playbook (seul)
Ce que tu sauras faire à la fin
| Notion | Tu sauras… |
|---|---|
| Donnée personnelle (DCP) | qualifier une donnée : directe, indirecte, sensible, anonyme |
| Pseudo / anonymisation | distinguer les deux et savoir laquelle sort du RGPD |
| Principes & bases légales | citer les grandes règles et les 6 fondements d'un traitement |
| Acteurs | distinguer responsable de traitement et sous-traitant |
| Droits | nommer les droits des personnes et les traduire en code |
| Obligations & CNIL | registre, notification 72 h, DPO, AIPD, sanctions |
| Côté code (SLAM) | traduire le RGPD en choix techniques concrets |
0. Derrière la base patients
Quand la base patients de GSB est volée, ce ne sont pas des « lignes » qui fuient : ce sont des personnes réelles, avec des informations intimes.
Le vol expose GSB à trois choses, toutes organisées par le RGPD : des sanctions (par la CNIL), une obligation de prévenir les victimes, et une perte de confiance majeure. Ce playbook t'explique tout le cadre — et surtout ce qu'il change pour toi quand tu codes.
Flag A1
Checkpoint
Pourquoi le vol de la base patients est-il bien plus grave que celui de la liste des imprimantes de GSB ? Cite au moins 2 conséquences concrètes pour les personnes.
Rends : ta réponse en 3-4 lignes.
1. C'est quoi une donnée personnelle ?
Une donnée à caractère personnel (DCP) est toute information se rapportant à une personne physique identifiée ou identifiable — directement ou indirectement. Le mot clé est identifiable : même sans nom, si on peut remonter à la personne, c'est une DCP.
| Catégorie | Définition | Exemples |
|---|---|---|
| Identifiant direct | désigne la personne à lui seul | nom, email, n° de téléphone, photo du visage |
| Identifiant indirect | permet de ré-identifier en croisant | adresse IP, identifiant de connexion, cookie, plaque d'immat., matricule |
| Donnée sensible (protection renforcée) | touche à l'intimité ; traitement interdit par défaut, sauf exceptions | santé, origine ethnique, opinions politiques, religion, orientation sexuelle, données biométriques, génétique |
| Donnée anonyme | plus aucun moyen de ré-identifier | statistique agrégée : « 62 % des patients ont plus de 50 ans » |
La donnée sensible est un sous-ensemble de la DCP (encore plus protégée). La donnée anonyme, elle, sort du RGPD — à condition que la ré-identification soit vraiment impossible.
Exemple travaillé (le modèle à suivre)
Qualifions ensemble une donnée, pour montrer le raisonnement attendu :
À toi : exercice de qualification
Range chacune de ces données de GSB dans la bonne case : direct / indirect / sensible / anonyme. Justifie en une ligne, comme dans l'exemple.
| Donnée | Ta qualification |
|---|---|
Email du visiteur médical j.dupont@gsb.fr | … |
| Pathologie d'un patient | … |
| Adresse IP de connexion à l'appli | … |
| « Nombre total de patients : 4 200 » | … |
| Numéro de sécurité sociale | … |
Flag A2
Checkpoint (qualification)
Complète le tableau ci-dessus. Pour chaque ligne, indique la catégorie ET pourquoi.
Rends : ton tableau rempli et justifié.
2. Pseudonymiser ≠ anonymiser
On confond souvent les deux, et l'erreur a des conséquences énormes : l'une reste soumise au RGPD, l'autre en sort. C'est LE point que les jurys adorent vérifier.
| Pseudonymisation | Anonymisation | |
|---|---|---|
| Principe | on remplace les identifiants par un code, mais une table de correspondance existe | on détruit tout moyen de remonter à la personne, définitivement |
| Réversible ? | oui (avec la clé / la table) | non, jamais |
| Ré-identification | possible | impossible |
| RGPD ? | s'applique encore (c'est toujours une DCP) | ne s'applique plus |
| Exemple | patient « Marie Leroy » → PAT-4471, avec une table qui relie 4471 ↔ Marie | « 1 patient sur 3 a un traitement chronique » (agrégat, plus aucun individu) |
Flag B1
Analyse
GSB veut publier une étude : « répartition des pathologies par tranche d'âge ». Un stagiaire propose un fichier où chaque ligne = un patient avec code = PAT-xxxx, âge, pathologie, code postal.
Est-ce anonymisé ? Si non, explique le risque de ré-identification et propose une vraie solution.
Rends : ta réponse argumentée.
3. Le RGPD : ce que c'est, à qui ça s'applique
Le RGPD est un règlement de l'Union européenne, applicable depuis le 25 mai 2018. « Règlement » = il s'impose directement dans tous les pays de l'UE, sans loi nationale pour le transposer.
Champ d'application (qui est concerné ?)
| Critère | En clair |
|---|---|
| Matériel | tout traitement de données personnelles (informatisé ou même fichier papier structuré) |
| Territorial | toute organisation établie dans l'UE, OU qui vise/suit des personnes situées dans l'UE — même si l'entreprise est hors UE (ex. un site US qui cible des clients français) |
Transferts hors UE : trois mécanismes, un choix concret
Envoyer des DCP hors de l'Union européenne — héberger sur AWS us-east-1, utiliser Mailchimp, Stripe, SendGrid… — n'est autorisé que via un mécanisme encadré :
| Mécanisme | Principe | Exemples |
|---|---|---|
| Décision d'adéquation | la Commission européenne a jugé que le pays offre une protection équivalente — transfert libre, sans formalité supplémentaire | Japon, Canada (secteur privé), Nouvelle-Zélande, Royaume-Uni, Israël, Argentine, États-Unis (DPF, depuis juil. 2023) |
| Clauses contractuelles types (CCT / SCC) | contrat standard approuvé par la Commission européenne, signé avec le prestataire — il s'engage contractuellement à des garanties équivalentes | AWS, GCP, Azure signent tous des CCT ; Mailgun, Mailchimp, Sendgrid aussi — mais il faut le vérifier dans leur DPA |
| Règles d'entreprise contraignantes (BCR) | politique interne approuvée par une autorité de contrôle — pour groupes multinationaux uniquement | filiales IBM, Google, Microsoft qui échangent des données en interne |
| Exceptions ponctuelles | consentement explicite, exécution d'un contrat, intérêt vital — usage strictement limité à des cas isolés, pas systématiques | un contrat unique avec un client hors UE ; une urgence médicale |
Le RGPD repose ensuite sur deux piliers, qu'on voit dans les chapitres suivants : des principes (chap. 4) à respecter, et une base légale (chap. 5) qui justifie chaque traitement.
4. Les principes du RGPD
Tout traitement de données doit respecter ces principes. Ce sont les questions à te poser avant de stocker quoi que ce soit.
| Principe | Ce qu'il impose | Contre-exemple |
|---|---|---|
| Finalité | collecter pour un but précis, déclaré, légitime (pas « au cas où ») | réutiliser des emails de livraison pour faire de la pub sans prévenir |
| Minimisation | ne collecter que le strict nécessaire à la finalité | demander la religion pour une newsletter |
| Licéité & loyauté | avoir une base légale (chap. 5) et être transparent | collecter en douce via un script caché |
| Exactitude | garder des données justes et à jour | garder une vieille adresse erronée et refuser de la corriger |
| Conservation limitée | ne pas garder indéfiniment (chap. 6) | conserver les CV reçus 15 ans |
| Sécurité (intégrité & confidentialité) | protéger : chiffrement, accès restreints, sauvegardes | base patients en clair, accessible à tous |
| Responsabilité (accountability) | pouvoir prouver à tout moment qu'on respecte les autres principes : registre des traitements, AIPD, contrats sous-traitants documentés (art. 5.2 RGPD) | aucun registre tenu → impossible de se défendre lors d'un contrôle CNIL même si les données étaient bien protégées en pratique |
Cas travaillé : GSB face aux principes
Voilà le réflexe : pour chaque donnée, passe les principes en revue un par un.
Flag A3
Checkpoint
Un site de météo demande ton nom, ton email, ta religion et ton numéro de sécu pour t'envoyer la météo locale.
Quels principes RGPD sont violés ? (cite-les et explique pour chacun)
Rends : ta réponse.
5. Les 6 bases légales
Avant tout traitement, il faut une base légale : un fondement qui le rend licite. Beaucoup de monde croit qu'il faut toujours le consentement — faux. Le consentement n'est qu'une des 6 bases. En choisir une (et la bonne) est obligatoire.
| Base légale | Quand l'utiliser | Exemple |
|---|---|---|
| 1. Consentement | la personne a dit oui, librement et clairement | s'inscrire à une newsletter |
| 2. Contrat | nécessaire pour exécuter un contrat avec la personne | adresse de livraison d'une commande |
| 3. Obligation légale | la loi t'oblige à traiter ces données | conserver les factures pour le fisc |
| 4. Intérêts vitaux | protéger la vie de quelqu'un | données médicales en urgence vitale |
| 5. Mission d'intérêt public | mission de service public | traitement par une administration |
| 6. Intérêt légitime | intérêt réel de l'organisation, sans léser la personne | sécurité du réseau, prévention de la fraude |
Flag A4
Checkpoint
Pour chacun de ces traitements GSB, indique la base légale la plus adaptée (parmi les 6) :
a) envoyer la fiche de paie d'un salarié · b) newsletter santé optionnelle · c) garder l'historique des remboursements pour le contrôle comptable · d) journaliser les connexions pour détecter une intrusion.
Rends : tes 4 réponses justifiées.
6. Durée de conservation
Le principe « conservation limitée » dit : on ne garde pas les données pour toujours. À chaque donnée doit correspondre une durée, liée à la finalité. Passé ce délai → suppression ou archivage (accès très restreint), ou anonymisation.
| Donnée (exemple) | Durée recommandée | Source / texte de référence |
|---|---|---|
| CV d'un candidat non retenu | 2 ans max après le dernier contact | Recommandation CNIL recrutement |
| Données client (relation commerciale) | 3 ans après fin de relation en base active, puis archivage 5 ans | Art. 2224 Code civil (prescription) + L.123-22 Code de commerce |
| Factures, documents comptables | 10 ans | Art. L.123-22 Code de commerce |
| Bulletins de paie (côté employeur) | 5 ans | Art. L.3243-4 Code du travail |
| Cookies de mesure d'audience (consentement) | 13 mois pour le consentement ; données agrégées 25 mois | Recommandation CNIL cookies (2020) |
| Images de vidéosurveillance | 1 mois en général, 3 mois max sans autorisation spéciale | Art. L.252-5 Code de la sécurité intérieure |
| Dossier médical (adulte, hôpital) | 20 ans à compter du dernier acte médical | Art. R.1112-7 Code de la santé publique |
| Dossier médical (patient décédé avant 28 ans) | Jusqu'à ses 28 ans ou 10 ans après le décès (le plus long) | Art. R.1112-7 CSP |
| Logs de connexion (hébergeurs, FAI) | 1 an | Décret n°2021-1363 — obligation légale pour enquêtes judiciaires |
| Numéro de carte bancaire | 13 mois après la transaction (litiges), archivage 5 ans (fraude) | Recommandation CNIL + PCI-DSS (standard carte) |
Flag A5
Checkpoint
GSB garde les comptes des visiteurs médicaux qui ont quitté l'entreprise il y a 6 ans, « au cas où ils reviendraient ». Quel principe est violé ? Propose une politique de durée raisonnable pour ces comptes.
Rends : ta réponse.
7. Les acteurs : qui fait quoi ?
Le RGPD distingue trois rôles. Savoir qui est quoi détermine qui est responsable en cas de problème — une question d'examen classique.
| Acteur | Rôle | Exemple GSB |
|---|---|---|
| Personne concernée | l'humain dont on traite les données ; titulaire des droits | le patient, le visiteur médical |
| Responsable de traitement | décide pourquoi et comment on traite ; porte la responsabilité | GSB (le laboratoire) |
| Sous-traitant | traite les données pour le compte du responsable, selon ses instructions | l'hébergeur du serveur, un prestataire d'emailing |
La personne fournit ses données au responsable et exerce ses droits auprès de lui. Le responsable peut confier le traitement à un sous-traitant, encadré par un contrat. En cas de fuite, le responsable reste en première ligne.
Flag B2
Analyse de scénario
GSB utilise un service tiers d'envoi d'emails (Mailgun) pour notifier les visiteurs. Qui est responsable de traitement ? Qui est sous-traitant ? Qui est la personne concernée ? Et si le service tiers se fait pirater, qui doit notifier la CNIL ?
Rends : tes 4 réponses.
8. Les droits des personnes
Le RGPD donne à chacun des droits sur ses données. Une organisation doit pouvoir y répondre, en général sous 1 mois et gratuitement.
| Droit | La personne peut… | Devient en code… |
|---|---|---|
| Accès | savoir quelles données on a sur elle, et en obtenir copie | export de sa fiche (JSON / PDF) |
| Rectification | faire corriger une donnée fausse | route PUT /mon-compte |
| Effacement (oubli) | demander la suppression de ses données | route DELETE /mon-compte |
| Portabilité | récupérer ses données dans un format réutilisable pour les emporter ailleurs | export structuré (CSV/JSON) |
| Opposition | refuser un traitement (ex. le démarchage) | désinscription en 1 clic |
| Limitation | geler un traitement le temps d'une vérification | flag « compte suspendu » |
Le droit d'accès, en vrai
Concrètement, une route qui rassemble TOUT ce qu'on a sur la personne et le renvoie :
// GET /mon-compte/export — droit d'accès + portabilité
const moi = await User.findById(req.user.id);
const frais = await Frais.find({ userId: req.user.id });
res.json({ profil: moi, frais }); // format réutilisable (JSON)
Flag B3
Production
Pour l'appli GSB AppliFrais, décris comment implémenter techniquement 2 droits : l'accès et l'effacement. Quelles routes ? Quelles tables/collections touchées ? Que renvoie-t-on ?
Rends : ta proposition (routes + comportement attendu).
9. Obligations & la CNIL
Côté organisation, le RGPD impose des obligations, contrôlées en France par la CNIL (Commission Nationale de l'Informatique et des Libertés).
| Obligation | En clair |
|---|---|
| Registre des traitements | documenter, pour chaque traitement : quelles données, pourquoi (finalité), base légale, durée, qui y accède |
| Sécurité | protéger : chiffrement, contrôle des accès, sauvegardes, mises à jour |
| Notification de fuite | prévenir la CNIL sous 72 h après découverte, et les victimes si le risque pour elles est élevé |
| DPO | désigner un Délégué à la Protection des Données (obligatoire pour le secteur public, ou en cas de traitement à grande échelle de données sensibles — ex. santé) |
| Privacy by design / by default | intégrer la protection dès la conception et par défaut (chap. 11) |
| AIPD si risque élevé | analyser l'impact d'un traitement risqué avant de le lancer (chap. 10) |
Les sanctions réelles : ce que ça coûte vraiment
Ce ne sont pas des chiffres théoriques — voici des amendes effectives prononcées sous le RGPD :
| Organisation | Autorité | Année | Manquement principal | Amende |
|---|---|---|---|---|
| Meta Ireland | DPC (Irlande) | 2023 | Transferts de données vers les USA sans mécanisme valide (période post-Schrems II) | 1 200 M€ |
| Amazon | CNPD (Luxembourg) | 2021 | Traitement des données de ciblage publicitaire sans base légale | 746 M€ |
| Instagram (Meta) | DPC (Irlande) | 2022 | Comptes d'enfants en mode public par défaut (violation privacy by default) | 405 M€ |
| WhatsApp (Meta) | DPC (Irlande) | 2021 | Manque de transparence sur les traitements inter-entités Meta | 225 M€ |
| Google France | CNIL (France) | 2021 | Bandeau cookies : refuser aussi difficile qu'accepter ; traceurs déposés avant le choix | 150 M€ |
| Facebook France | CNIL (France) | 2021 | Cookies publicitaires déposés sans consentement préalable | 60 M€ |
| Caisse d'Allocations Familiales | CNIL (France) | 2024 | Algorithme de scoring des allocataires : traitement disproportionné, base légale insuffisante | 900 000 € |
| Brico Privé | CNIL (France) | 2023 | Démarchage téléphonique sans consentement valide | 600 000 € |
À quoi ressemble un registre des traitements ?
C'est un tableau qui décrit chaque traitement. En voici une ligne, pour GSB :
| Champ | Contenu (exemple GSB) |
|---|---|
| Traitement | Suivi médical des patients |
| Finalité | assurer le suivi et les remboursements |
| Données | identité, n° sécu, pathologies, traitements |
| Base légale | contrat de soins + obligation légale |
| Durée | archivage légal du dossier médical |
| Accès | médecins habilités uniquement |
| Sécurité | chiffrement, accès restreint, journalisation |
Tu en rédigeras un toi-même dans le mini-projet (chap. 13, Bonus A).
En cas de fuite : la marche à suivre
Le jour où GSB découvre le vol, l'ordre des gestes compte. Voici la procédure type :
- Contenir : couper l'accès exploité, changer les secrets, isoler le système touché.
- Qualifier : quelles données ? combien de personnes ? quel risque pour elles ?
- Notifier la CNIL sous 72 h (qui, quoi, conséquences, mesures prises).
- Informer les victimes si le risque pour elles est élevé (ici : oui, données de santé).
- Documenter : tout consigner (l'organisation doit pouvoir prouver qu'elle a réagi).
- Corriger la faille pour qu'elle ne se reproduise pas.
Flag D1
Investigation
Cherche une sanction réelle prononcée par la CNIL (ou une autre autorité européenne). Relève : l'entreprise, le manquement reproché, le montant.
Rends : ta fiche en 3 lignes + le lien de ta source.
10. L'AIPD (analyse d'impact)
Pour les traitements à risque élevé, le RGPD impose une AIPD (Analyse d'Impact relative à la Protection des Données ; en anglais PIA, Privacy Impact Assessment). C'est une étude qu'on mène avant de lancer le traitement.
Les 9 critères CNIL — quand une AIPD est obligatoire
La CNIL a publié une liste de 9 types de traitements qui peuvent déclencher une AIPD. Dès que 2 critères sur 9 sont réunis, l'AIPD est obligatoire (lignes directrices CEPD et liste CNIL 2018) :
| # | Critère | Exemple GSB |
|---|---|---|
| 1 | Évaluation / scoring de personnes | algorithme de risque de non-remboursement |
| 2 | Décision automatique avec effet légal ou similaire | refus de prise en charge automatique |
| 3 | Surveillance systématique (monitoring à grande échelle) | tracking des déplacements des visiteurs médicaux via GSM |
| 4 | Données sensibles (art. 9 RGPD) ou données à caractère très personnel | données de santé des patients → critère automatiquement présent |
| 5 | Traitement à grande échelle | traiter les données de milliers de patients simultanément |
| 6 | Croisement / combinaison de données issues de sources distinctes | croiser BDD patients + données de géolocalisation externe |
| 7 | Données sur des personnes vulnérables (enfants, patients, précaires…) | patients hospitalisés = personnes vulnérables |
| 8 | Usage innovant ou application de nouvelles technologies | IA pour prédire des pathologies à partir de l'historique médical |
| 9 | Transfert de données hors UE empêchant l'exercice des droits | hébergement sur serveur US sans DPA ni CCT |
Structure d'une AIPD : les 4 questions-clés
| L'AIPD répond à… | Ce qu'on documente | Exemple GSB |
|---|---|---|
| Description du traitement | quoi, pourquoi, qui, comment, combien de temps | suivi médical : données de santé, 20 ans, accès médecins habilités |
| Nécessité et proportionnalité | la donnée est-elle vraiment indispensable ? | le n° de sécu est nécessaire ; la profession du patient ne l'est pas |
| Identification des risques | scénarios de menace + probabilité + gravité | fuite → discrimination à l'assurance (gravité très haute), accès interne abusif (probabilité modérée) |
| Mesures d'atténuation | ce qu'on met en place pour réduire chaque risque | chiffrement AES-256, accès cloisonné par rôle, journalisation des consultations, sauvegardes chiffrées |
Et si l'AIPD révèle un risque résiduel élevé ?
Si, même après toutes les mesures, le risque reste élevé, le responsable de traitement doit consulter la CNIL avant de lancer le traitement (art. 36 RGPD). La CNIL dispose alors de 8 semaines pour répondre (prolongeable de 6 semaines supplémentaires). Si elle s'y oppose → le traitement ne peut pas démarrer.
Flag A6
Checkpoint
GSB lance un nouveau module qui analyse les pathologies des patients pour faire des statistiques. Une AIPD est-elle nécessaire ? Justifie en t'appuyant sur les critères (données sensibles, échelle).
Rends : ta réponse.
11. Le RGPD dans ton code
Pour un développeur SLAM, le RGPD se traduit en choix techniques concrets. Deux principes officiels guident tout :
| Principe | Ce que ça veut dire |
|---|---|
| Privacy by design | penser la protection dès la conception, pas après coup |
| Privacy by default | les réglages par défaut sont les plus protecteurs (rien d'activé sans accord) |
1. Consentement : la case NON pré-cochée
Privacy by default = la case n'est jamais cochée d'avance. C'est à l'utilisateur de faire le geste.
<!-- MAUVAIS : case déjà cochée (consentement invalide) -->
<input type="checkbox" name="pub" checked> Recevoir des offres
<!-- BON : décochée par défaut, l'utilisateur choisit -->
<input type="checkbox" name="pub"> Recevoir des offres
2. Droit à l'oubli : soft-delete ≠ hard-delete
Beaucoup d'applis « suppriment » en posant juste un drapeau. Attention : si la donnée reste lisible, le droit à l'oubli n'est PAS respecté.
// Soft-delete : on marque, mais la donnée RESTE (insuffisant seul)
await Patient.updateOne({ _id: id }, { supprime: true });
// Hard-delete : on efface vraiment (satisfait le droit à l'oubli)
await Patient.deleteOne({ _id: id });
3. Sécurité : hasher vs chiffrer
// Mot de passe : on HASHE (irréversible, on ne le relit jamais)
const hash = await bcrypt.hash(motDePasse, 12);
// Donnée sensible qu'on doit relire : on CHIFFRE (réversible avec une clé)
const chiffre = chiffrerAES(numeroSecu, cleSecrete);
Comparaison des algorithmes de hachage
| Algorithme | Prévu pour… | Vitesse (GPU) | Pour les mots de passe ? | Longueur du hash |
|---|---|---|---|---|
| MD5 | intégrité de fichier | milliards/s | NON — cassé en secondes | 128 bits (32 hex) |
| SHA-1 | intégrité, anciennes signatures | milliards/s | NON — cassé rapidement | 160 bits (40 hex) |
| SHA-256 | intégrité, TLS, blockchain | centaines M/s | NON seul — trop rapide | 256 bits (64 hex) |
| bcrypt | mots de passe | milliers/s (coût 12) | OUI — recommandé | 60 chars (format $2b$12$…) |
| argon2id | mots de passe | lent + mémoire-intensif | OUI — référence OWASP | variable (~95 chars) |
4. Injection SQL : la faille qui vole les données (GSB Ordonnances, C#)
La faille OWASP A03 (Injection) : elle survient quand on colle des données utilisateur directement dans le texte d'une requête SQL.
// DANGEREUX — concaténation directe (GSB 1A : NE JAMAIS FAIRE)
string sql = "SELECT * FROM Patient WHERE nom = '" + txtNom.Text + "'";
cmd.CommandText = sql;
// Si l'utilisateur saisit : ' OR '1'='1
// → requête résultante : SELECT * FROM Patient WHERE nom = '' OR '1'='1'
// → renvoie TOUS les patients
// BON — requête paramétrée (GSB 1A, C# ADO.NET + MySQL)
string sql = "SELECT * FROM Patient WHERE nom = @nom";
using var cmd = new MySqlCommand(sql, connexion);
cmd.Parameters.AddWithValue("@nom", txtNom.Text); // valeur transmise séparément
using var reader = cmd.ExecuteReader();
5. Traçabilité : journaliser les accès sensibles
logger.info(`ACCES dossier patient ${id} par user ${req.user.id} le ${new Date().toISOString()}`);
6. Authentification : JWT et gestion des tokens (GSB AppliFrais)
Quand un visiteur se connecte à GSB AppliFrais, le serveur lui remet un JWT (JSON Web Token) — une carte d'identité numérique qu'il présentera à chaque requête API.
// Génération d'un access token (Node.js / jsonwebtoken)
const accessToken = jwt.sign(
{ userId: user._id, role: user.role }, // payload (données non secrètes)
process.env.JWT_SECRET, // clé secrète (min. 256 bits)
{ expiresIn: '15m' } // expiration courte
);
// Refresh token (durée longue, stocké en BDD côté serveur)
const refreshToken = jwt.sign(
{ userId: user._id },
process.env.JWT_REFRESH_SECRET,
{ expiresIn: '7d' }
);
Flag C1
Debug (bug volontaire)
Un collègue a écrit ce formulaire d'inscription GSB :
<input type="checkbox" name="cgu" checked> J'accepte le partage de mes données santé
Il contient deux fautes RGPD. Trouve-les, corrige le code, et explique pourquoi chacune était une faute.
Rends : le code corrigé + tes 2 explications.
Flag A7
Checkpoint
Donne 3 choses concrètes qu'un développeur fait dans son code pour respecter le RGPD (autres que celles déjà citées en exemple).
Rends : ta réponse.
12. Cookies & consentement web
Sur le web, certains cookies (et traceurs) déposés sur le navigateur de l'utilisateur servent à le pister. Le RGPD (complété par la directive « ePrivacy ») impose des règles précises — c'est le bandeau cookies que tu vois partout.
| Type de cookie | Consentement requis ? |
|---|---|
| Strictement nécessaire (panier, session de connexion) | Non : indispensable au service |
| Mesure d'audience anonymisée (selon conditions) | Parfois dispensé |
| Publicité, traceurs tiers, réseaux sociaux | Oui : consentement préalable |
Flag D2
Investigation
Va sur un site grand public et observe son bandeau cookies. « Refuser » est-il aussi accessible qu'« Accepter » ? Y a-t-il un choix par finalité ?
Rends : le site observé + ton verdict (conforme / non) en 3 lignes.
13. Mini-projet : audit RGPD
La mission
Tu audites une petite application (GSB, ou une appli que tu connais) au regard du RGPD, comme le ferait un DPO junior. Tu produis un vrai tableau d'analyse de conformité.
Étape 1 — Recenser les données
Liste toutes les données personnelles collectées par l'appli. Repère les sensibles.
Étape 2 — Pour chaque donnée, qualifier la conformité
Remplis ce tableau (une ligne par donnée) :
| Donnée | Finalité | Base légale | Durée | Minimisée ? | Conforme ? |
|---|---|---|---|---|---|
| … | … | … | … | … | |
| … | … | … | … | … | … |
Étape 3 — Vérifier les droits
L'utilisateur peut-il : accéder à ses données ? les corriger ? les faire effacer ? Si non, c'est un écart à corriger.
Étape 4 — Recommander
Propose 3 améliorations concrètes (techniques et/ou organisationnelles).
Flag B4
Mini-projet (production)
Produis ton audit complet : le tableau rempli (étape 2) + l'analyse des droits (étape 3) + tes 3 recommandations (étape 4).
Rends : ton document d'audit. C'est la démarche d'une vraie analyse de conformité.
Défis bonus (Flag E)
Bonus A : rédige un mini « registre des traitements » pour UN traitement (données, finalité, base légale, durée, accès).
Bonus B : explore le site de la CNIL et résume, en 3 lignes, un de ses conseils destinés aux développeurs.
Bonus C : reprends ton appli de projet et code réellement une des mesures du chapitre 11 (case décochée, route DELETE…).
Pour finir
Ton antisèche
| Notion | En un mot |
|---|---|
| DCP | toute info sur une personne identifiable (directe ou indirecte) |
| Donnée sensible | santé, opinions… protection renforcée |
| Pseudo vs anonyme | pseudo = réversible, reste DCP · anonyme = irréversible, hors RGPD |
| Bases légales | 6 fondements (consentement n'est qu'un seul) |
| Acteurs | personne · responsable · sous-traitant |
| Droits | accès, rectification, oubli, portabilité, opposition, limitation |
| CNIL | l'autorité qui contrôle et sanctionne (jusqu'à 4 % du CA) |
| Privacy by design/default | protéger dès la conception, et par défaut |
Vérifie tes acquis
- Qu'est-ce qu'une donnée personnelle ? Donne un exemple indirect.
- Quelle différence entre pseudonymisation et anonymisation ? Laquelle sort du RGPD ?
- Cite 3 principes du RGPD.
- Cite 3 des 6 bases légales (le consentement n'est-il pas obligatoire ?).
- Différence entre responsable de traitement et sous-traitant ?
- Cite 3 droits des personnes.
- Que doit faire une entreprise en cas de fuite de données ? (délai ?)
- Cite 3 traductions techniques du RGPD dans le code.
Glossaire
| Mot | Définition |
|---|---|
| RGPD | règlement européen (2018) de protection des données personnelles |
| DCP | donnée à caractère personnel |
| Traitement | toute opération sur des données (collecte, stockage, consultation, suppression…) |
| Donnée sensible | santé, origine, opinions… traitement très encadré |
| Pseudonymisation | remplacer les identifiants, mais de façon réversible (reste une DCP) |
| Anonymisation | rendre la ré-identification impossible (sort du RGPD) |
| Base légale | fondement qui rend un traitement licite (6 possibles) |
| Responsable de traitement | celui qui décide pourquoi et comment on traite |
| Sous-traitant | celui qui traite pour le compte du responsable |
| Droit à l'oubli | droit de faire effacer ses données |
| CNIL | autorité française de protection des données |
| DPO | délégué à la protection des données |
| AIPD | analyse d'impact, obligatoire pour les traitements à risque |
| Privacy by design | protéger les données dès la conception |
| Privacy by default | réglages par défaut les plus protecteurs |