secure-webapp

Utilisez-le pour des conseils de sécurité fondés sur l'OWASP lors de la création, de la modification ou de la révision d'applications web. Déclenchez-le de manière proactive pour l'authentification, les sessions, JWT/OAuth/OIDC, les entrées utilisateur, les requêtes de base de données, les téléversements de fichiers, les points d'API, les cookies/CORS/CSP/en-têtes de sécurité, les secrets, les redirections, les récupérations d'URL externes, la journalisation/erreurs, les dépendances, la modélisation des menaces, le durcissement, les audits, les fonctionnalités LLM/IA telles que la gestion des invites, les outils agents et les serveurs MCP, ou les classes de vulnérabilités telles que XSS, SQLi, IDOR, CSRF, SSRF, open redirect, prototype pollution, désérialisation, injection d'invite et risque lié à la chaîne d'approvisionnement.

Qu'est-ce que secure-webapp ?

Secure Web App Coding est une compétence d'agent IA qui fournit des conseils pratiques de sécurité pour les applications web, basés principalement sur l'OWASP Top 10:2025, ASVS 5.0, la Cheat Sheet Series et des éléments du WSTG. Elle est conçue pour être utilisée avec des agents comme Claude Code, Codex, Gemini CLI et d'autres qui chargent des compétences, offrant une approche flexible selon le mode : audit complet, vérification rapide, durcissement automatique, correction itérative, revue de conception avant implémentation, génération de rapports formels, ou mise à jour/ maintenance de la compétence elle-même. Son utilité principale est d'intégrer la sécurité de manière proactive dans le cycle de développement, en signalant les problèmes de haut niveau par défaut, et en déclenchant des vérifications approfondies lorsque l'utilisateur demande une revue ou un audit. Elle utilise un routage basé sur la tâche pour charger uniquement les références nécessaires (gestion des entrées, authentification, autorisation, tokens, API, front-end, secrets, cryptographie, chaîne d'approvisionnement, etc.) et applique une liste de surveillance permanente de 20 problèmes critiques, comme les contrôles d'autorisation manquants, les secrets codés en dur, les injections SQL, les JWT mal vérifiés, les failles XSS, les CORS permissifs, les redirections ouvertes, les SSRF, les logs contenant des données sensibles, et les risques liés à l'IA/LLM (injection d'invite, sorties non contrôlées). Son comportement met l'accent sur l'écriture de code sécurisé par défaut, sans explications superflues, et s'adapte à la criticité de l'application sans imposer de contrôles excessifs pour des prototypes jetables.

Compatible avec✓Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/gabrielereylane/lovable-skills/tree/HEAD/.agents/skills/secure-webapp

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

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

Documentation

Codage d'application web sécurisé

Transforme l'OWASP Top 10:2025, l'ASVS 5.0, la Cheat Sheet Series et du matériel WSTG sélectionné en conseils pratiques de sécurité pour applications web.

Par défaut (en ligne) : écrivez du code sécurisé en silence ; ne signalez que le problème à plus fort impact que vous voyez à proximité. Audit : sur "review", "audit", "harden", "est-ce sécurisé ?" ou suivi d'incident — lisez assets/audit-checklist.md et produisez des conclusions priorisées.

Modes, invoqués sous la forme $secure-webapp <mode> :

  • $secure-webapp audit : revue priorisée complète ; lisez assets/audit-checklist.md.
  • $secure-webapp quick-check : passage à plus haut risque uniquement — autorisation, auth/session, secrets, injection/XSS, téléversements, SSRF, jetons. Pas de rapport complet basé sur une liste de contrôle.
  • $secure-webapp harden : appliquez directement les modifications sécurisées là où les éditions sont autorisées ; petits correctifs qui préservent l'architecture ; vérifiez et signalez tout ce qui nécessite une approbation produit.
  • $secure-webapp remediate : boucle audit→correction itérative ; lisez assets/remediate-checklist.md en entier d'abord.
  • $secure-webapp design-review : modèle de menace avant implémentation — hypothèses, limites de confiance, cas d'abus, contrôles indispensables, questions non résolues.
  • $secure-webapp report : rédigez un rapport formel dans docs/security-audit-report-YYYY-MM-DD.md ; lisez assets/report-template.md en entier d'abord et suivez chaque étape. Nécessite un audit préalable dans cette session. Écrivez dans le fichier, jamais dans le chat.
  • $secure-webapp update : mettez à jour cette installation en exécutant npx --yes github:hov172/secure-webapp-skill --global. Il vérifie la version et ne réinstalle que lorsqu'une version plus récente existe. Indicateurs : --claude/--codex/--gemini, --check, --force.
  • $secure-webapp maintain : mettez à jour le package de compétence lui-même, à partir d'un clone du dépôt source — voir scripts/README.md.

Ne chargez que les références dont la tâche a besoin. Ne les chargez jamais toutes en bloc.

Routage

La tâche impliqueCharger
Chaînes non fiables interprétées comme HTML/DOM/SQL/shell/NoSQL/LDAP/regex/CSVreferences/input-handling.md
Connexion, inscription, mots de passe, MFA, réinitialisation, force brute, sessions, cookies, déconnexionreferences/auth-and-sessions.md
Permissions, rôles, vérifications de propriété, IDOR, isolation des locatairesreferences/authorization.md
JWT, jetons API/refresh, signature et vérification, OAuth/OIDC, PKCE, étatreferences/tokens-and-oauth.md
Points de terminaison REST/GraphQL/WebSocket, limites de débit, affectation en masse, forme de réponse, téléversements/téléchargements, traversée de chemin, URL pré-signéesreferences/apis-and-files.md
Secure/HttpOnly/SameSite, CSP, CORS, CSRF, en-têtes, iframes, postMessagereferences/frontend-and-headers.md
Variables d'environnement, .env, clés, gestionnaire de secrets, mode débogage, valeurs par défautreferences/secrets-and-config.md
Chiffrement, hachage de mots de passe, algorithmes, gestion des clés, PIIreferences/data-and-crypto.md
Dépendances, lockfiles, SBOM, CI/CD, GitHub Actions, artefacts signésreferences/supply-chain.md
URL externes contrôlées par l'utilisateur, SSRF, conditions de course, désérialisation, pollution du prototypereferences/secure-coding.md
Journalisation, réponses d'erreur, traces de pile, pistes d'audit, échec-fermé, restaurationreferences/logging-and-errors.md
Conception de nouvelles fonctionnalités, modélisation des menaces, multi-location, décisions sécurisées dès la conceptionreferences/insecure-design.md
Fonctionnalités LLM/IA, construction d'invites, RAG, appels d'outils agents, serveurs MCP, sortie de modèle rendue ou exécutéereferences/ai-and-llm.md

Liste de surveillance permanente

Signalez ces éléments au passage lorsqu'ils sont vus dans du code web, avec un correctif concret :

  1. Absence de vérifications d'autorisation/auth du côté serveur sur les routes de ressources. Préférez un cadrage au niveau de la requête tel que WHERE owner_id = :current_user.
  2. Secrets codés en dur, identifiants, secrets JWT, clés API ou fichiers .env commités.
  3. Requêtes SQL/NoSQL/shell construites par concaténation de chaînes. Utilisez des requêtes paramétrées, des builders sécurisés ou des API argv.
  4. Mots de passe en texte brut ou hachés avec un algorithme rapide. Utilisez argon2id, scrypt ou bcrypt ; PBKDF2 uniquement lorsque requis.
  5. Vérification JWT avec des algorithmes non épinglés, vérifications exp/iss/aud manquantes ou secrets dans le code.
  6. dangerouslySetInnerHTML, v-html ou innerHTML avec du contenu utilisateur. Rendez-le sous forme de texte ou nettoyez-le.
  7. CORS avec des informations d'identification et une origine générique ou écho. Utilisez une liste blanche stricte.
  8. Absence de limites de débit sur les points de terminaison de connexion, inscription, réinitialisation, MFA/OTP ou coûteux.
  9. Erreurs de production verbeuses, traces de pile, détails SQL/ORM ou mode débogage exposés aux clients.
  10. Redirections ouvertes à partir de paramètres next, returnTo ou URL non validés.
  11. SSRF à partir d'URL fournies par l'utilisateur sans liste blanche et blocage d'IP privée après DNS et redirections.
  12. Journaux contenant des mots de passe, jetons, ID de session, secrets ou PII inutiles.
  13. Contrôles de sécurité côté client uniquement : champs cachés, boutons désactivés, revendications de rôle côté client, validation frontend uniquement.
  14. Téléversements de fichiers sans contrôle de taille, type, chemin, stockage ou nom généré.
  15. Chemins d'exception ouverts (fail-open) autour de l'auth, l'autorisation, les limites de débit, les indicateurs de fonctionnalité ou les transactions.
  16. Changements d'état non atomiques pour les soldes, quotas, paiements, stocks, coupons ou jetons à usage unique.
  17. Sortie de modèle/LLM atteignant un puits non vérifié — innerHTML, shell, SQL, chemins de fichiers, URL fetch ou un agent en aval. Traitez-la comme une entrée non fiable.
  18. Appels d'outils agents autorisés par rapport au compte de service plutôt qu'à l'utilisateur final, ou outils génériques run_shell/execute_sql/http_request qui transforment l'injection d'invite en RCE, SQLi ou SSRF.
  19. Texte non fiable concaténé dans une invite système ; secrets ou données d'autres utilisateurs dans le contexte du modèle.
  20. Références mutables de dépendances ou d'actions CI là où l'épinglage et les lockfiles sont attendus — une balise déplacée exécute le code de l'attaquant dans ce travail avec les secrets de ce travail. Notez Élevé lorsque le travail contient des identifiants de déploiement, des clés de signature ou des droits de publication ; de même pour les identifiants cloud de longue durée là où OIDC existe. Auditez chaque espace de travail dans un monorepo, et signalez un --audit-level inférieur à high.

Comportement

  • Écrivez du code sécurisé par défaut, sans longues explications. Nommez brièvement les choix pertinents pour la sécurité lorsque c'est utile.
  • Adaptez la rigueur aux enjeux de l'application ; n'imposez pas de contrôles d'entreprise dans des prototypes jetables.
  • Ne générez jamais intentionnellement du code non sécurisé. Proposez l'équivalent sûr et énoncez la contrainte en une phrase.
  • Pour les nouvelles fonctionnalités franchissant une limite de confiance, vérifiez : entrée non fiable, autorisation, mode de défaillance, données stockées, voie d'abus.
  • Lors d'un audit, inspectez le code réel, posez uniquement les questions de cadrage essentielles et rapportez la sévérité + emplacement + preuve + correctif, priorisé.
  • Ne citez pas les numéros d'exigence OWASP sauf si demandé.
  • Ne prétendez pas effectuer de tests d'intrusion ; il s'agit d'une revue de code et de conception.

Périmètre

Piles web courantes — Next.js, Express, Django, Flask, FastAPI, Rails, Spring, Laravel, Go et similaires. Pour les domaines de niche que les références ne couvrent pas, dites-le et pointez vers la source OWASP pertinente plutôt que de deviner.

Indépendant de l'agent : fonctionne dans Claude Code, Codex, Gemini CLI et tout autre outil qui charge des compétences ou lit AGENTS.md/GEMINI.md. Lorsque ce fichier nomme un outil, utilisez l'équivalent de votre environnement.

Skills associés