Server-side Validation

React 🟡 Mid

Définition

Validation des données cote serveur en complément du client, car la validation client est contournable. Avec Server Actions, le même schema Zod peut valider des deux cotes.

Analogie

Comme un double contrôle de sécurité : le portique (client) puis la fouille (serveur). Le portique seul ne suffit pas.

Exemple de code

'use server';
const schema = z.object({ email: z.string().email() });

export async function createUser(formData: FormData) {
  const result = schema.safeParse(Object.fromEntries(formData));
  if (!result.success) return { errors: result.error.flatten() };
  await db.users.create(result.data);
}

Cas d'usage

Toute mutation de données : la validation client est UX, la validation serveur est sécurité.

Anti-pattern

Se reposer uniquement sur la validation client, exposant l'app a des données malformées.
#forms#security#bestpractice

← → au clavier pour passer d'une fiche à l'autre