Server Actions
React 🟡 MidDéfinition
Fonctions asynchrones exécutées sur le serveur et appelables depuis un composant client, typiquement via la prop action d'un <form>. Depuis septembre 2024, React les appelle « Server Functions » ; « Server Action » désigne le cas particulier d'une Server Function passée à une prop action. Stables dans React 19 (5 décembre 2024).
Analogie
Comme commander par téléphone : tu passes l'ordre (client) et la cuisine (serveur) exécuté, sans aller au comptoir (API route).
Exemple de code
// actions.ts
'use server';
import { updateTag } from 'next/cache';
export async function addTodo(formData: FormData) {
const session = await getSession(); // autorisation ICI
if (!session) throw new Error('Non autorisé');
await db.todos.create({ text: String(formData.get('text')) });
updateTag('todos'); // read-your-writes
}
// component.tsx
<form action={addTodo}><input name="text" /><button>Ajouter</button></form>
Cas d'usage
Soumission de formulaire, CRUD, toute mutation serveur, avec revalidation du cache (Next.js 16 : updateTag pour relire immédiatement ses propres écritures, refresh pour les données non mises en cache).
Anti-pattern
Oublier que chaque Server Function est un point d'entrée HTTP public : valider les entrées et vérifier l'autorisation dans la fonction elle-même. Le 3 décembre 2025, la CVE-2025-55182 (RCE, CVSS 10.0) touchait la désérialisation de ces requêtes dans react-server-dom-* 19.0 à 19.2.0 ; correctifs 19.0.1, 19.1.2, 19.2.1.
Termes liés
Dans l'actu
- 14/10 Next.js publie la mise à jour de sécurité hors cycle annoncée le 8 octobre : v16.4.1 (Active LTS) et v15.5.28 (Maintenance LTS) corrigent deux RCE critiques non authentifiées — l'une via les fonctions 'use cache' des Cache Compone… Semaine 42 (1re moitié) · 12 – 14 octobre 2026 →
- 14/10 React publie les patchs 19.3.1, 19.2.9, 19.1.10 et 19.0.9 pour deux advisories dans les paquets react-server-dom-webpack, -turbopack et -parcel : une RCE critique non authentifiée dans les React Server Components (GHSA-xqc2-xf4c-x3h3) et un déni de service (High) dans les Server Functions. Semaine 42 (1re moitié) · 12 – 14 octobre 2026 →
Sources
Fiche mise à jour le 2026-09-27