Aller au contenu

Sécurité code

Avant de déployer vérifie SÉCURITÉ

Règles de développement — Sécurité obligatoire

Clés API & secrets

  • Jamais de clé API dans le code frontend ou dans le repo Git
  • Toujours stocker en variables d’environnement côté serveur
  • Pour WordPress : wp_options + chiffrées, jamais exposées en front-end
  • Clés avec permissions minimales (moindre privilège)

Authentification & sessions

  • Chaque route vérifie l’authentification côté serveur
  • Tokens avec expiration
  • Sessions invalidées à la déconnexion côté serveur
  • Rate limiting sur les endpoints d’auth et sensibles
  • Mots de passe hachés avec bcrypt ou argon2 uniquement
  • Messages d’erreur génériques (ne pas révéler si un email existe)

Base de données

  • Requêtes paramétrées uniquement — zéro concaténation SQL
  • Utilisateur DB non-root avec droits minimaux
  • Inputs validés et sanitizés côté serveur
  • Bases dev et production séparées

Headers HTTP & HTTPS

  • HTTPS imposé partout, HTTP redirigé
  • HSTS activé (max-age long + includeSubDomains)
  • CORS verrouillé sur le domaine — jamais de wildcard *
  • Headers : Content-Security-Policy, X-Frame-Options, X-Content-Type-Options, Referrer-Policy
  • Cookies : HttpOnly, Secure, SameSite=Strict ou Lax

Protection des requêtes

  • Tokens CSRF sur tous les formulaires qui modifient des données
  • Pagination sur tous les endpoints de liste

Uploads & fichiers

  • Type MIME vérifié côté serveur (pas seulement l’extension)
  • Taille maximale des fichiers limitée
  • Fichiers uploadés hors du webroot ou bucket isolé
  • Exécution de scripts interdite dans le dossier uploads

Autorisations & logique métier

  • Vérification IDOR : droits vérifiés au niveau de l’objet, pas seulement de la route
  • Actions destructives derrière confirmation + re-vérification des droits
  • Jamais de stack traces exposées en production

Déploiement

  • Variables d’environnement définies sur le serveur de production
  • Pare-feu : seulement ports 80/443 publics
  • Plan de rollback documenté
  • Tests staging avant déploiement production

Dépendances & code

  • npm audit exécuté, problèmes critiques résolus
  • composer audit exécuté (PHP/WordPress)
  • Pas de console.log dans la build de production
  • Gestion d’erreurs sur toutes les opérations asynchrones

Logs & monitoring

  • Logs ne contenant jamais de données sensibles (tokens, mots de passe, PII)
  • Alertes sur tentatives de login répétées

Spécifique WordPress

  • readme.html supprimé, meta generator retiré
  • xmlrpc.php désactivé si non utilisé
  • Préfixe des tables DB personnalisé
  • wp-config.php hors webroot ou permissions 400
  • Plugins/thèmes inutilisés supprimés (pas seulement désactivés)

Instruction pour Claude

Si je code une route, un formulaire, un upload, une auth ou une
intégration API sans appliquer ces règles, signale-le immédiatement
et propose la correction.
EOF