Communitygithub.com

YepAPI/skills

Sécurité des erreurs — réponses d'erreur sécurisées, identifiants de corrélation, aucune fuite de stack trace en production.

Qu'est-ce que skills ?

Cette compétence, axée sur la sécurité des erreurs, établit des règles strictes pour éviter les fuites d'informations sensibles en production. Elle garantit que les utilisateurs reçoivent des messages d'erreur génériques accompagnés d'un identifiant unique (corrélation), tandis que tous les détails techniques (stack trace, erreurs de base de données, chemins de fichiers) sont enregistrés côté serveur avec le même identifiant pour faciliter le débogage. La compétence propose des exemples concrets de middleware Express et de composant d'erreur Next.js, illustrant comment mettre en œuvre ces pratiques de manière sécurisée. Elle est utile pour tout développeur souhaitant améliorer la résilience et la sécurité de ses applications en production, et s'applique à divers environnements Node.js et frameworks web modernes.

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Sécurité des erreurs

Règles

  • Ne jamais divulguer de stack traces, d'erreurs de base de données ou de chemins de fichiers aux clients en production
  • Renvoyer des messages d'erreur génériques avec un identifiant d'erreur unique : { error: "Quelque chose s'est mal passé", errorId: "abc123" }
  • Enregistrer tous les détails de l'erreur côté serveur avec le même identifiant de corrélation pour le débogage
  • Utiliser différents niveaux de détail des erreurs : développement (stack trace complet) vs production (message sécurisé + ID)
  • Attraper toutes les erreurs non gérées avec des gestionnaires d'erreurs globaux — ne jamais laisser les erreurs brutes atteindre le client
  • Nettoyer les messages d'erreur provenant de services tiers avant de les transmettre aux clients
  • Renvoyer des codes de statut HTTP appropriés : 400 (mauvaise entrée), 401 (non authentifié), 403 (interdit), 404 (non trouvé), 500 (erreur serveur)
// Middleware de gestion d'erreurs Express
import { randomUUID } from "node:crypto";

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

  // Enregistrer tous les détails côté serveur
  console.error({ errorId, message: err.message, stack: err.stack, url: req.url });

  // Renvoyer une réponse sécurisée au client
  const statusCode = (err as any).statusCode || 500;
  res.status(statusCode).json({
    error: statusCode >= 500 ? "Erreur interne du serveur" : err.message,
    errorId,
    ...(process.env.NODE_ENV === "development" && { stack: err.stack }),
  });
});
// Barrière d'erreur Next.js — erreurs de production sécurisées
export default function GlobalError({ error, reset }) {
  return (
    <div>
      <h2>Quelque chose s'est mal passé</h2>
      <p>Identifiant d'erreur : {error.digest}</p>
      <button onClick={reset}>Réessayer</button>
    </div>
  );
}

À éviter

  • Renvoyer err.message directement — les erreurs de base de données divulguent les noms de tables, les noms de colonnes et la structure des requêtes
  • Les stack traces dans les réponses de production — elles révèlent les chemins de fichiers, les dépendances et l'architecture interne
  • Un 500 générique pour tout — utilisez les codes de statut appropriés pour que les clients puissent gérer les erreurs correctement
  • Enregistrer les erreurs sans identifiants de corrélation — rend le débogage en production presque impossible
  • Avaler les erreurs en silence — enregistrez toujours, même si la réponse est générique

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 associés