Anti-modèles de sécurité Java

VérifiéSûr

Empêche les vulnérabilités OWASP Top 10 dans les applications Java utilisant Spring Boot ou Jakarta EE.

Spar Skills Guide Bot
SecuriteIntermédiaire
22/07/2026
Claude CodeCursorWindsurf
#java#owasp-top-10#secure-coding#spring-boot#code-generation

Recommandé pour

Synthèse automatique

Garde-fou de génération de code qui guide l'écriture de code Java (Spring Boot, Jakarta EE, JPA) à l'abri des vulnérabilités de l'OWASP Top 10.

Points forts

  • Règles « ne jamais / toujours » concrètes pour l'injection SQL, la désérialisation, l'exécution de commandes, la cryptographie et les secrets.
  • Couverture des OWASP Top 10 Web 2025 et API Security 2023 avec références CWE.
  • Index modulaire par domaine (injection, authentification, validation, fichiers, Spring Security, dépendances) pour cibler le bon contrôle.
  • Déclencheurs d'activation précis liés aux entrées utilisateur, accès base de données, authentification, fichiers et sérialisation.

Limites

  • Fournit des consignes de prévention à la génération, pas une analyse statique ni une protection à l'exécution.
  • Ciblé Java/Spring/Jakarta EE ; ne couvre pas les autres langages ou frameworks.
  • Efficacité dépendante du respect des règles par l'agent ; ne détecte pas à lui seul les vulnérabilités déjà présentes.
Quand l'utiliser

À utiliser lorsqu'on génère ou révise du code Java web/API manipulant des entrées, l'authentification, des requêtes SQL, des fichiers ou de la sérialisation.

Quand l'éviter

À éviter pour des stacks non Java ou pour un audit de sécurité complet et un test d'intrusion d'un système existant.

Analyse de sécurité

Sûr
Score qualité88/100

The skill is a defensive Java security guidance file with only Read permission declared. It contains no destructive commands, network exfiltration, obfuscated payloads, secret handling, or instructions to disable safety controls; it explicitly recommends secure coding practices.

Aucun point d'attention détecté

Comment cette analyse est faite

Exemples

Secure REST endpoint
Generate a Spring Boot REST endpoint that accepts an account ID and returns account details. Include proper authentication and resource ownership checks.
SQL injection review
Review this JPA repository method for SQL injection risk and rewrite it using named parameters or a safe Criteria query.
Safe file upload
Add file upload handling to my Jakarta EE servlet with validation and path traversal protection.

name: security-antipatterns-java description: Use when generating Java code for web applications, APIs, or enterprise systems - prevents OWASP Top 10 vulnerabilities in Spring Boot, Jakarta EE, and core Java version: "1.0.0" allowed-tools: "Read" metadata: short-description: Prevents OWASP Top 10 vulnerabilities in Java/Spring applications

Security Anti-Patterns Guard for Java

Overview

Code generation guard that prevents security vulnerabilities while writing Java web application code. Covers OWASP Top 10 Web (2025), OWASP API Security Top 10 (2023), with CWE references throughout.

Stack: Java 11/17/21, Spring Boot, Spring Security, Jakarta EE, Hibernate, JPA

Java Version Focus:

  • Java 17 (primary target - ~35% usage)
  • Java 11 (secondary - ~33% usage)
  • Java 21 (latest LTS - growing adoption)

When to Activate

Activate when generating code that:

  • Handles user input (forms, API requests, file uploads)
  • Queries databases (JDBC, JPA, Hibernate)
  • Performs authentication or authorization
  • Manages sessions or JWT tokens
  • Processes files or paths
  • Serializes/deserializes data (ObjectInputStream, XML, JSON)
  • Uses cryptographic operations
  • Executes system commands or processes
  • Configures Spring Security or Jakarta EE security

Critical Rules (Top 10)

  1. NEVER concatenate strings into SQL queries - use PreparedStatement or JPA named parameters
  2. NEVER use ObjectInputStream.readObject() on untrusted data - use JSON with validation
  3. NEVER use Runtime.exec() with user input - use ProcessBuilder with argument list
  4. NEVER use java.util.Random for security - use SecureRandom
  5. NEVER use MD5/SHA1 for passwords - use BCrypt or Argon2
  6. NEVER hardcode secrets - use environment variables or secret managers
  7. NEVER disable CSRF without understanding the risk - keep enabled for browser clients
  8. NEVER trust user-supplied file paths - normalize and validate with Path.resolve() + startsWith()
  9. ALWAYS verify resource ownership (BOLA) - check userId before returning data
  10. ALWAYS validate input at API boundaries - use Bean Validation annotations

Module Index

| Module | Focus | Key Vulnerabilities | |--------|-------|---------------------| | references/injection.md | SQL, Command, LDAP, XPath, JPQL | CWE-89, CWE-78, CWE-90, CWE-643 | | references/deserialization.md | ObjectInputStream, XXE, JSON/YAML | CWE-502, CWE-611 | | references/xss-output.md | XSS, template escaping, JSP/Thymeleaf | CWE-79 | | references/auth-access.md | BOLA, BFLA, sessions, JWT | CWE-862, CWE-863, CWE-287 | | references/crypto-secrets.md | Secrets, hashing, encryption | CWE-798, CWE-327, CWE-916 | | references/input-validation.md | Bean Validation, forms, uploads | CWE-20, CWE-434, CWE-915 | | references/file-operations.md | Path traversal, temp files, NIO | CWE-22, CWE-377 | | references/spring-security.md | CSRF, CORS, method security, actuators | Spring-specific | | references/jakarta-ee.md | Servlet security, EJB, JAX-RS | Jakarta EE-specific | | references/dependencies.md | Maven/Gradle audit, supply chain | CWE-1104, CWE-1357 | | references/java-runtime.md | Reflection, ReDoS, ScriptEngine | CWE-94, CWE-1333 |

Quick Decision Tree

User input involved?
├─ Database query → See references/injection.md (use PreparedStatement/JPA named params)
├─ File path → See references/file-operations.md (use Path.resolve() + startsWith check)
├─ Command execution → See references/injection.md (ProcessBuilder with list args)
├─ Deserialization → See references/deserialization.md (NEVER ObjectInputStream on untrusted)
├─ Template rendering → See references/xss-output.md (use th:text not th:utext)
└─ API endpoint → See references/auth-access.md + references/input-validation.md

Storing/generating secrets?
├─ API keys → See references/crypto-secrets.md (env vars or Vault)
├─ Passwords → See references/crypto-secrets.md (BCrypt/Argon2)
└─ Tokens → See references/crypto-secrets.md (SecureRandom)

Framework-specific?
├─ Spring Boot → See references/spring-security.md
├─ Jakarta EE → See references/jakarta-ee.md
└─ Core Java → See references/java-runtime.md

How to Use This Skill

  1. During code generation: Reference relevant module for specific vulnerability patterns
  2. Code review: Check generated code against patterns in each module
  3. When uncertain: Default to the more secure option; add explicit comments explaining security decisions

Sources

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/java-security-anti-patterns-guard-mrwakbaf/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/java-security-anti-patterns-guard-mrwakbaf' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/java-security-anti-patterns-guard-mrwakbaf/download' --output '.skill-downloads/java-security-anti-patterns-guard-mrwakbaf/SKILL.md.part' && mv '.skill-downloads/java-security-anti-patterns-guard-mrwakbaf/SKILL.md.part' '.skill-downloads/java-security-anti-patterns-guard-mrwakbaf/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Outils déclarés par l’auteur (à vérifier dans votre agent) : Read

Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.

Claude Code
test -f '.skill-downloads/java-security-anti-patterns-guard-mrwakbaf/SKILL.md' && test -s '.skill-downloads/java-security-anti-patterns-guard-mrwakbaf/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/security-antipatterns-java' && cp -R '.skill-downloads/java-security-anti-patterns-guard-mrwakbaf' '.claude/skills/security-antipatterns-java'

Cursor
test -f '.skill-downloads/java-security-anti-patterns-guard-mrwakbaf/SKILL.md' && test -s '.skill-downloads/java-security-anti-patterns-guard-mrwakbaf/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/security-antipatterns-java' && cp -R '.skill-downloads/java-security-anti-patterns-guard-mrwakbaf' '.cursor/skills/security-antipatterns-java'

OpenSkills

OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.

Installation officielle d’OpenSkills
openskills install './.skill-downloads/java-security-anti-patterns-guard-mrwakbaf'

openskills read 'java-security-anti-patterns-guard-mrwakbaf'

La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.

Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.

openskills sync

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/java-security-anti-patterns-guard-mrwakbaf/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires