Las Server Actions en Next.js 16 pueden ser un vector de ataque si no implementas un control de autenticación adecuado.

El truco

ANTES (mal):

export async function serverAction(req) {
  const data = await fetchData(req);
  return data;
}

DESPUÉS (bien):

import { getSession } from 'next-auth/client';

export async function serverAction(req) {
  const session = await getSession({ req });
  if (!session) {
    throw new Error('No autorizado');
  }

  const data = await fetchData(req);
  return data;
}

La diferencia crucial está en la validación de la sesión del usuario. Sin comprobar si el usuario está autenticado, tu acción del servidor es vulnerable a ser explotada por cualquier usuario no autenticado. Utiliza next-auth para verificar la sesión antes de proceder con cualquier lógica del servidor.

No subestimes las verificaciones de autenticación; son la primera línea de defensa contra accesos no autorizados en tus aplicaciones.