𝗝'𝗮𝗶 𝗮𝘂𝗱𝗶𝘁é 𝗺𝗲𝘀 𝗽𝗿𝗼𝗷𝗲𝘁𝘀 𝗽𝗲𝗿𝘀𝗼𝗻𝗻𝗲𝗹𝘀 𝗽𝗼𝘂𝗿 𝗹𝗮 𝘀é𝗰𝘂𝗿𝗶𝘁é — 𝘃𝗼𝗶𝗰𝗶 𝗰𝗲 𝗾𝘂𝗲 𝗷'𝗮𝗶 𝘁𝗿𝗼𝘂𝘃é

J'ai récemment audité tous mes projets personnels. J'ai vérifié mes backends FastAPI, mes bots Telegram et mes applications web. Je pensais être prudent.

J'avais tort.

J'ai trouvé de vrais bugs que j'ai réellement mis en production. Ce ne sont pas des problèmes théoriques. Ce sont des erreurs que j'ai commises en essayant d'aller vite.

Voici les principaux problèmes que j'ai rencontrés et comment les corriger :

  1. Authentification conditionnelle J'ai écrit du code qui ne vérifiait les clés API que si un secret existait. Si j'oubliais de configurer le secret dans mon environnement, la vérification était totalement ignorée. Cela laissait mon API ouverte à tout le monde.
  1. Fuite de clés dans l'historique Git J'ai trouvé d'anciennes clés API dans mon historique Git. Je les avais déplacées vers des fichiers .env plus tard, mais Git conserve chaque ancienne version de votre code pour toujours.
  1. Points de terminaison de débogage restants J'ai laissé des endpoints en production qui affichaient ma configuration de base de données et mes paramètres système. Ils sont utiles pendant le développement, mais dangereux une fois en ligne.
  1. Messages d'erreur trop détaillés Je renvoyais des erreurs système brutes à l'utilisateur. Ces erreurs révèlent vos chemins de fichiers, vos types de bases de données et vos versions de bibliothèques. Un attaquant peut utiliser ces données pour cibler votre système.
  1. XSS via innerHTML J'utilisais innerHTML pour afficher les données utilisateur dans mon frontend. Cela permet à des attaquants d'injecter des scripts dans votre site.
  1. Absence de limitation de débit (Rate Limiting) J'avais des endpoints qui appelaient des modèles d'IA coûteux sans aucune limite. Un seul utilisateur pouvait générer une facture massive en quelques minutes.
  1. Paramètres CORS trop permissifs J'utilisais allow_origins=["*"] dans mon middleware. Cela permet à n'importe quel site web d'effectuer des requêtes vers votre API.
  1. Fuite de fichiers J'ai écrit du code qui créait des fichiers temporaires, mais qui ne parvenait pas à les supprimer si le processus plantait. Ces fichiers restent indéfiniment sur votre serveur.

Les problèmes de sécurité sont rarement intentionnels. Ils sont le résultat de l'approche « Je corrigerai cela plus tard ». Le « plus tard » n'arrive jamais.

Intégrez la sécurité dans votre flux de travail dès le premier jour. Vérifiez votre code avant de faire un commit et avant de déployer.

Source : https://dev.to/justjinoit/i-audited-my-own-side-projects-for-security-issues-heres-what-i-found-1ahb