Écrire des tests et sécuriser le code avec l'IA

Coder avec l’aide de l’IA pour les développeurs

Francesca Donadoni

AI Curriculum Manager, DataCamp

Invitation orientée tests

☺ Invitation normale

Écrivez une fonction Python pour analyser les adresses e-mail.

🤓 Invitation orientée tests

Écrivez une fonction Python pour analyser les adresses e-mail. Elle doit passer les tests suivants :

  • Accepte une adresse valide comme "[email protected]".
  • Rejette une entrée invalide comme "user@@domain".
  • Lève une ValueError pour une entrée vide.
Coder avec l’aide de l’IA pour les développeurs

Invitation orientée tests

  • Invite utilisateur : Générez des tests unitaires en Python pour une fonction qui traite les données de formulaire soumises par l'utilisateur et les insère dans une base de données SQL.

  • Réponse du modèle :

Voici une suite pytest prête à l'emploi qui couvre la validation, la normalisation, la sécurité contre les injections SQL et le comportement des transactions pour une fonction qui traite les données de formulaire et insère un enregistrement dans une base de données SQL.

---------- Fixtures de test DB ----------

@pytest.fixture() def conn(): """Base de données SQLite en mémoire avec une table utilisateurs.""" c = sqlite3.connect(":memory:") [...]

Coder avec l’aide de l’IA pour les développeurs

Invitation orientée tests

  • Invite utilisateur : Générez des tests unitaires Python en utilisant pytest pour la fonction suivante. Incluez des cas pour une entrée vide, des mots-clés SQL dans l'entrée et des caractères spéciaux. Supposons une connexion à une base de données simulée. <INSERT FUNCTION>

  • Réponse du modèle :

Voici un module de test pytest autonome qui utilise des simulations (pas de DB réelle) et couvre l'entrée vide, les mots-clés SQL et les caractères spéciaux. Il vérifie également le comportement de commit/close et que les exceptions sont gérées.

Coder avec l’aide de l’IA pour les développeurs

Invitation pour la sécurité

☺ Invitation normale

$$

Analysez la fonction Python suivante pour détecter d'éventuelles vulnérabilités et proposez des alternatives plus sûres si nécessaire.

🤓 Invitation orientée tests

$$

Examinez ce code pour des problèmes de sécurité web courants, y compris l'injection SQL, le XSS et les défauts de validation des entrées.

Coder avec l’aide de l’IA pour les développeurs

OWASP Top 10

owasp_top_10.png

Coder avec l’aide de l’IA pour les développeurs

OWASP Top 10

  • Invite utilisateur : Auditez la fonction suivante pour les vulnérabilités OWASP Top 10.
def login(username, password):
   query = f"SELECT * FROM users WHERE username = '{username}' \
           AND password = '{password}'"
   result = db.execute(query)
   return result.fetchone()
  • Réponse du modèle :

Voici un audit ciblé OWASP Top 10 de votre fonction de connexion, ainsi qu'une réécriture plus sûre.

  1. A03 : Injection. L'interpolation directe de chaînes dans SQL rend cela facilement injectable. Exemples de charges utiles :
    • username = "admin' --" → contourne la vérification du mot de passe. [...]
Coder avec l’aide de l’IA pour les développeurs

Passons à la pratique !

Coder avec l’aide de l’IA pour les développeurs

Preparing Video For Download...