RGPD applicatif : droits des personnes
Sommaire
Défi n°4 du TP Cyber-Rescue : implémenter concrètement trois droits RGPD dans une application web.
1. Traduire le RGPD en code
Les droits des personnes ne sont pas seulement une mention dans une politique de confidentialité : ils doivent être exerçables. Trois pages suffisent à couvrir l'essentiel côté applicatif.
| Droit | Article | Page |
|---|---|---|
| Effacement / droit à l'oubli | 17 | rgpd_oubli.php |
| Accès | 15 | rgpd_acces.php |
| Portabilité | 20 | rgpd_export.php |
Règle commune aux trois : l'utilisateur doit être authentifié, et l'action ne doit porter que sur ses données. Un identifiant passé en paramètre d'URL sans vérification produirait une faille de contrôle d'accès (OWASP A01), bien plus grave que le problème que l'on cherchait à régler.
2. Droit à l'oubli (article 17)
L'utilisateur connecté clique sur un bouton, ressaisit son mot de passe pour confirmer, puis ses données sont anonymisées.
<?php
// Re-authentification avant une action irréversible
if (!password_verify($_POST['password'], $user['mdp'])) {
die("Mot de passe incorrect.");
}
$stmt = $pdo->prepare(
"UPDATE joueurs
SET pseudo = :anon, email = NULL, date_naissance = NULL,
adresse = NULL, anonymise_le = NOW()
WHERE id = :id"
);
$stmt->execute([':anon' => 'ancien_joueur_' . $id, ':id' => $id]);
Pourquoi anonymiser plutôt que supprimer ? Un DELETE sur le compte casserait les
contributions liées : messages du forum orphelins, historique de commandes incohérent, clés étrangères en
violation. L'anonymisation retire le lien avec une personne identifiable tout en préservant l'intégrité
fonctionnelle de l'application.
Une donnée réellement anonymisée sort du champ du RGPD, puisqu'elle ne se rapporte plus à une personne identifiable. C'est ce qui distingue l'anonymisation de la pseudonymisation, qui reste réversible et demeure soumise au règlement.
Limite à connaître : le droit à l'effacement n'est pas absolu. Il cède devant une obligation légale de conservation (facturation, comptabilité) ou la constatation d'un droit en justice.
3. Droit d'accès (article 15)
La page affiche à l'utilisateur l'intégralité des données détenues sur lui : profil, historique de connexions, messages, préférences, données de facturation. Il faut penser aux données indirectes souvent oubliées : logs applicatifs, adresses IP conservées, données issues d'imports.
À afficher également : les finalités du traitement, les destinataires, la durée de conservation — l'article 15 les exige au même titre que les données elles-mêmes.
4. Droit à la portabilité (article 20)
<?php
log_event('RGPD_EXPORT', $profil['pseudo'], 'SUCCESS', 'Export JSON (user_id=' . $id . ')');
header('Content-Type: application/json; charset=utf-8');
header('Content-Disposition: attachment; filename="gameon_donnees_' . $id . '_' . date('Ymd') . '.json"');
header('Cache-Control: no-store');
header('X-Content-Type-Options: nosniff');
echo json_encode($data,
JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
Le RGPD impose un format structuré, couramment utilisé et lisible par machine. L'objectif est de permettre à la personne de réutiliser ses données, notamment en les transférant vers un service concurrent — c'est un mécanisme de concurrence autant que de protection.
- Conviennent : JSON, XML, CSV.
- Ne conviennent pas : PDF ou une capture d'écran, lisibles par un humain mais non réexploitables automatiquement.
Rôle des en-têtes : Content-Disposition: attachment déclenche le téléchargement,
Cache-Control: no-store évite que des données personnelles restent en cache navigateur ou proxy,
X-Content-Type-Options: nosniff empêche le navigateur de réinterpréter le type du fichier.
5. Journaliser les demandes
Chaque exercice de droit doit être tracé : date, utilisateur, action, résultat. Cette journalisation sert à démontrer la conformité en cas de contrôle CNIL — c'est le principe d'accountability (responsabilité) de l'article 5.2 : il ne suffit pas d'être conforme, il faut pouvoir le prouver.
Le journal lui-même contient des données personnelles : il doit avoir sa propre durée de conservation, ses accès restreints, et figurer dans le registre des traitements.