Communitygithub.com

YepAPI/skills

Seguridad en errores: respuestas seguras, IDs de correlación, sin fugas de trazas de pila en producción.

¿Qué es skills?

Este skill, YepAPI/skills, implementa una estrategia robusta de seguridad en el manejo de errores para aplicaciones en producción. Su objetivo principal es evitar que detalles sensibles como trazas de pila, rutas de archivos o errores de base de datos lleguen al cliente. En su lugar, devuelve mensajes de error genéricos acompañados de un ID único de error (correlation ID) para facilitar la depuración en el lado del servidor. El skill incluye reglas claras sobre cómo manejar errores no capturados, sanitizar mensajes de servicios de terceros y devolver códigos de estado HTTP adecuados (400, 401, 403, 404, 500). Proporciona ejemplos prácticos de código para middleware de manejo de errores en Express.js y un componente de límite de error para Next.js, demostrando cómo alternar entre niveles de detalle de error en desarrollo y producción. También advierte sobre prácticas a evitar, como devolver err.message directamente (que puede exponer estructuras de base de datos) o trazas de pila en respuestas de producción. Es compatible con frameworks de Node.js como Express y Next.js, y es útil para desarrolladores frontend y backend que necesitan asegurar sus aplicaciones contra filtraciones de información a través de errores.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/YepAPI/skills/tree/HEAD/skills/error-security

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Seguridad de Errores

Reglas

  • Nunca filtres trazas de pila, errores de base de datos o rutas de archivos a los clientes en producción
  • Devuelve mensajes de error genéricos con un ID de error único: { error: "Algo salió mal", errorId: "abc123" }
  • Registra todos los detalles del error en el servidor con el mismo ID de correlación para depuración
  • Usa diferentes niveles de detalle de error: desarrollo (traza de pila completa) vs producción (mensaje seguro + ID)
  • Captura todos los errores no manejados con manejadores globales — nunca permitas que los errores sin procesar lleguen al cliente
  • Sanitiza los mensajes de error de servicios de terceros antes de reenviarlos a los clientes
  • Devuelve códigos de estado HTTP apropiados: 400 (entrada incorrecta), 401 (no autenticado), 403 (prohibido), 404 (no encontrado), 500 (error del servidor)
// Middleware de manejador de errores para Express
import { randomUUID } from "node:crypto";

app.use((err: Error, req: Request, res: Response, next: NextFunction) => {
  const errorId = randomUUID();

  // Registrar detalles completos en el servidor
  console.error({ errorId, message: err.message, stack: err.stack, url: req.url });

  // Devolver respuesta segura al cliente
  const statusCode = (err as any).statusCode || 500;
  res.status(statusCode).json({
    error: statusCode >= 500 ? "Error interno del servidor" : err.message,
    errorId,
    ...(process.env.NODE_ENV === "development" && { stack: err.stack }),
  });
});
// Límite de error de Next.js — errores seguros en producción
export default function GlobalError({ error, reset }) {
  return (
    <div>
      <h2>Algo salió mal</h2>
      <p>ID de error: {error.digest}</p>
      <button onClick={reset}>Intentar de nuevo</button>
    </div>
  );
}

Evitar

  • Devolver err.message directamente — los errores de base de datos filtran nombres de tablas, nombres de columnas y estructura de consultas
  • Trazas de pila en respuestas de producción — revelan rutas de archivos, dependencias y arquitectura interna
  • Un 500 genérico para todo — usa códigos de estado adecuados para que los clientes puedan manejar los errores apropiadamente
  • Registrar errores sin IDs de correlación — hace que la depuración en producción sea casi imposible
  • Tragar errores silenciosamente — siempre registra, incluso si la respuesta es genérica

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

YepAPI/skills

WCAG 2.1 AA — semantic HTML, keyboard navigation, screen readers.

YepAPI/skills

Experiment setup, variant splitting, statistical significance, and feature flag integration.

YepAPI/skills

CRUD generators, data tables, user management, role-based access, and bulk operations.

YepAPI/skills

Monitor what ChatGPT and Gemini say about your brand using YepAPI.

YepAPI/skills

Queue workers with BullMQ/Inngest/Trigger.dev, job retries, dead letter queues, concurrency.

YepAPI/skills

Commander.js, interactive prompts with Clack, spinners, colors, config files, exit codes, and npm publishing.

YepAPI/skills

cmdk integration, Cmd+K trigger, fuzzy search, grouped actions, keyboard navigation, and dynamic action registration.

YepAPI/skills

Content planning with trend and sentiment data from YepAPI.

YepAPI/skills

Content calendar, keyword-driven planning, and content briefs.

YepAPI/skills

Theme switching with CSS variables, system preference detection, next-themes, and persistence.

YepAPI/skills

Threaded comments, @mentions, reactions, moderation queue, optimistic UI, and cursor pagination.

YepAPI/skills

Competitive analysis between domains using YepAPI.

YepAPI/skills

Layout grids, KPI cards, data tables with sorting/filtering, sidebar navigation, and responsive breakpoints.

YepAPI/skills

Data encryption — TLS everywhere, AES-256-GCM for PII, bcrypt passwords, encrypted backups.

YepAPI/skills

Chart patterns with Recharts/Nivo/D3, responsive containers, color scales, and accessibility.

YepAPI/skills

Drizzle schema definition, push vs migrate, type-safe queries, relations, transactions, and prepared statements.

YepAPI/skills

Upload handling, resize/compress, CDN delivery, blur placeholders, and next/image patterns.

YepAPI/skills

Local business and Google Maps research using YepAPI.

YepAPI/skills

Cursor-based pagination, IntersectionObserver, virtualized lists with @tanstack/react-virtual, and scroll position restoration.

YepAPI/skills

Chat UI components, streaming responses with AI SDK, context window management, and RAG patterns.

Skills relacionados