Audit complet (secrets exposés + failles + tests d'injection). Chaque ligne inclut la correction recommandée.
2 critical · 3 high · 3 medium · 2 low · 1 info
critical · exposed-secret - Clé secrète Stripe exposée (sk_live_…)
sk_live_51H••••••••••••••••••••wQ2p - trouvée en clair dans le bundle JavaScript public (assets/app.4f2a.js). Cette clé donne un accès total à votre compte de paiement.
→ Révoquez immédiatement la clé dans le dashboard Stripe, régénérez-en une, et ne l'utilisez QUE côté serveur (jamais dans le front).
critical · vuln - Injection SQL dans `id`
Ajouter une apostrophe au paramètre `id` de /produit déclenche une erreur de base de données absente de la requête normale - la valeur est très probablement concaténée dans une requête SQL sans échappement. Peut exposer ou détruire toute la base.
→ Utilisez des requêtes paramétrées (requêtes préparées), jamais de concaténation d'entrée utilisateur dans le SQL.
high · vuln - XSS réfléchi dans `q`
Une valeur forgée dans le paramètre `q` de /recherche est réinjectée dans la page SANS échappement HTML - le balisage injecté survit tel quel. Un attaquant peut exécuter du JavaScript arbitraire via un lien piégé.
→ Échappez toute entrée utilisateur avant affichage (auto-échappement du framework / textContent) et ajoutez une Content-Security-Policy stricte.
high · vuln - Fichier .env accessible publiquement
`/.env` répond en HTTP 200 et contient des paires clé=valeur (identifiants base de données, clés d'API). N'importe qui peut le télécharger.
→ Bloquez l'accès à `/.env` au niveau du serveur web et faites tourner tous les secrets qu'il contenait.
high · vuln - jQuery 1.12.4 obsolète
jQuery <3.5.0 est affecté par des failles XSS connues (CVE-2020-11022/23).
→ Mettez à jour jQuery vers une version récente.
medium · vuln - Content-Security-Policy absente
Aucune CSP - la principale défense contre les injections XSS est absente.
→ Définissez un en-tête `Content-Security-Policy` restrictif (script-src 'self', etc.).
medium · vuln - Redirection ouverte dans `next`
Le paramètre `next` de /login redirige vers une URL externe arbitraire (HTTP 302). Exploité pour le phishing : le lien semble pointer vers votre domaine mais atterrit ailleurs.
→ N'autorisez que des chemins internes en liste blanche ; rejetez les URL absolues/externes.
medium · vuln - Cookie `session` sans les drapeaux Secure, HttpOnly
Un cookie de session sans ces drapeaux est exposé au vol (XSS/MITM).
→ Ajoutez Secure et HttpOnly sur le cookie `session`.
low · vuln - En-tête X-Content-Type-Options manquant
Le MIME-sniffing n'est pas désactivé (devrait être `nosniff`).
→ Ajoutez `X-Content-Type-Options: nosniff`.
low · vuln - Divulgation de version serveur
`Server: nginx/1.18.0` expose la version exacte du logiciel.
→ Masquez la version dans l'en-tête `Server`.
info · vuln - Point sensible DOM-XSS potentiel : innerHTML
Ce motif PEUT permettre une XSS s'il reçoit une entrée non fiable. Indice statique, à vérifier manuellement.
→ Assainissez/encodez toute donnée utilisateur avant qu'elle n'atteigne ce point ; préférez textContent.