Lorsquâon construit une application SaaS, beaucoup de dĂ©veloppeurs â notamment freelances ou juniors â se concentrent sur les fonctionnalitĂ©s et lâUX. La sĂ©curitĂ© passe souvent aprĂšs⊠jusquâau jour oĂč une fuite ou une attaque survient.
Voici une liste des erreurs de sĂ©curitĂ© que lâon retrouve le plus souvent dans les projets, et qui sont pourtant faciles Ă Ă©viter :
đ API et gestion des droits
- Endpoints dâadministration non protĂ©gĂ©s
Trop souvent, lâAPI dâadmin reste exposĂ©e sans contrĂŽle dâaccĂšs strict. - Logique admin dans le client
Le frontend contient parfois des morceaux de code rĂ©vĂ©lant comment fonctionnent les privilĂšges. Un vrai guide pour un attaquant. - AccĂšs aux ressources dâautres utilisateurs
Câest lâerreur numĂ©ro un : un simple changement dâID dans lâURL permet de consulter les donnĂ©es dâun autre utilisateur. - Mise Ă jour de propriĂ©tĂ©s sensibles
Exemple classique : la variableisAdmin
dans le modĂšle utilisateur, modifiable via un simple PATCH.
đ”ïžââïž Fuites dâinformations
- Secrets dans le frontend
ClĂ©s API, tokens, ou mĂȘme fichiers IPA/APK de vieilles versions : tout ça finit parfois exposĂ© au grand public. - Sitemaps ou listes dâendpoints oubliĂ©es
Ce sont des cartes au trésor pour qui veut explorer les zones sensibles de votre app. - Réponses API trop bavardes
Inutile de renvoyer unpassword_hash
ou des tokens internes dans un JSON. - Publication de source maps
Les fichiers.map
rendent votre code comprĂ©hensible et facilitent lâingĂ©nierie inverse. - IDs incrĂ©mentĂ©s
Les/users/1
,/users/2
,/users/3
permettent de dumper une base entiÚre. Préférez des UUIDs.
đ§âđ» Dev & CI/CD
- Secrets commités dans Git
ClĂ©s API et variables dâenvironnement poussĂ©es par erreur (puis supprimĂ©es en commit suivant, mais toujours visibles dans lâhistorique). - .env exposĂ©s
Le fichier.env
traĂźne parfois sur un serveur, accessible en simple GET/env
ou via une mauvaise config Nginx/Apache. - Droits trop larges en CI/CD
Les runners CI ont accĂšs Ă toute la prod au lieu dâun rĂŽle limitĂ© (principe du moindre privilĂšge oubliĂ©). - Pas de rotation des clĂ©s
Une clé API générée il y a 3 ans reste valide et exposée dans plusieurs environnements.
đ Authentification & sessions
- Pas de rate limiting sur le login
Laisser un formulaire de connexion sans limite de tentatives = brute force assurĂ©. - JWT qui nâexpirent jamais
Un token volĂ© reste valable indĂ©finiment â un accĂšs permanent pour lâattaquant. - Cookies de session sans
HttpOnly
niSecure
Facilement volables via XSS ou interceptables en clair.
đ ïž Divers erreurs « bĂȘtes mais communes »
- Backup exposé dans un répertoire /backup
Zip ou SQL dump oubliĂ© aprĂšs un test â jackpot pour un attaquant. - Admin panel avec mot de passe par dĂ©faut
Le fameuxadmin/admin
qui traĂźne encore trop souvent. - Pas de monitoring ni alerting
On dĂ©couvre lâintrusion uniquement⊠quand un client appelle pour dire quâil a vu ses donnĂ©es fuiter. - Pas de politique de logs
Soit trop de logs sensibles, soit pas assez pour comprendre un incident.
â Conclusion
La majorité de ces failles ne demandent pas de techniques complexes : ce sont des oublis, des mauvaises habitudes ou un manque de relecture. Les corriger ne prend pas beaucoup de temps, mais peut éviter une catastrophe.
Un bon rĂ©flexe : considĂ©rer chaque mise en production comme une ouverture de porte vers lâextĂ©rieur. La question Ă se poser : âEst-ce que je nâai pas laissĂ© les clĂ©s sous le paillasson ?â