Aller au contenu principal

3 formations sont désormais disponibles : Python, Flask et JS.

Aller au contenu principal

Protection contre les failles courantes

Apprendre Flask : Le Guide Ultime
2 min de lecture
Gratuit

Tu développes un site, tu es responsable des données de tes utilisateurs. Flask est sécurisé par défaut, mais il faut connaître les pièges.

1. Injection SQL (SQLi)

L'attaquant essaie de manipuler ta base de données via un formulaire. Ex: Login = ' OR 1=1 --

Solution : SQLAlchemy. Comme on utilise l'ORM (User.query.filter_by(...)), les requêtes sont automatiquement nettoyées. ❌ À NE PAS FAIRE : Concaténer des chaînes SQL à la main. db.engine.execute("SELECT * FROM user WHERE name = '" + name + "'") <--- DANGER DE MORT ☠️

2. Cross-Site Scripting (XSS)

L'attaquant injecte du JavaScript dans ta page (ex: dans un commentaire) pour voler les cookies des autres. <script>alert('Hacked')</script>

Solution : Jinja2. Par défaut, Jinja2 "échappe" (escape) toutes les variables. Si message = "<script>alert()</script>", {{ message }} affichera le texte <script>... mais ne l'exécutera pas.

Attention : Si tu utilises {{ message | safe }}, tu désactives cette protection. N'utilise | safe QUE si tu es 100% sûr du contenu (ex: du HTML généré par toi, jamais par l'utilisateur).

3. Cross-Site Request Forgery (CSRF)

On en a parlé au module Formulaires.

Solution : Flask-WTF. Toujours utiliser form.hidden_tag() dans tes formulaires POST.

4. HTTPS

Tout ce qu'on vient de faire ne sert à rien si ton site est en HTTP simple, car le mot de passe transite en clair sur le réseau Wifi. En production, HTTPS est OBLIGATOIRE. (On verra ça au déploiement).