Retour à la leçon
Mission

Mission : la suppression de todo trouvée dans la console

Sécuriser une Server Action vulnérable et synchroniser le cache après une mutation.

Contexte

Un audit de sécurité découvre qu'un visiteur peut ouvrir la console du navigateur, importer directement deleteTodo et l'appeler avec l'id d'un todo appartenant à un autre utilisateur — l'action actuelle ne vérifie ni session ni propriétaire :

ts
"use server";
export async function deleteTodo(id: string) {
  await db.delete("todos").where({ id });
}

Par ailleurs, après un ajout de todo réussi via createTodo, la liste affichée reste périmée tant que la page n'est pas rechargée manuellement.