AI Coding · 4 mondes · 12 étapes

Coder avec l'IA

Faire travailler un assistant de code, sans jamais lui confier les clés.

Progression

0 %

0/12 étapes terminées

Avancé · 9 min de lecture

Garder le contrôle

Ce qui entre dans le projet passe par toi

1Définition

Certaines propositions sont dangereuses même quand elles marchent : eval et new Function exécutent du texte, innerHTML ouvre la porte aux injections, une clé écrite en dur fuit avec le code, un paquet suggéré peut être inventé ou imité. On les bloque par des règles fermées par défaut et un audit automatique.

2Principes fondamentaux

01

Jamais d'eval

On analyse et on reconnaît ; on n'exécute jamais le texte.

02

Object.hasOwn

in voit aussi les propriétés héritées, comme constructor.

03

Des paquets vérifiés

Existe-t-il ? Populaire ? Ancien ? Imite-t-il un plus gros ?

04

Un audit systématique

Motifs dangereux, secrets et dépendances, à chaque proposition.

3Exemples pratiques

Une règle de linter

Exemple
1// eslint.config.js2rules: {3  "no-eval": "error",4  "no-implied-eval": "error",5  "no-new-func": "error",6}

Le linter refuse ces motifs dans tout le projet, qu'ils viennent d'un humain ou d'un assistant.

Vérifier un paquet avant de l'installer

Exemple
1npm view lodash time.created repository.url2npm view lodahs          # 404 ? créé il y a 12 jours ? méfiance

Quelques secondes de vérification avant un npm install suggéré.

4Erreurs courantes

eval pour aller vite

À éviter

return eval(expression);

À faire

Un analyseur : nombre, opérateur connu, nombre

Pourquoi : La saisie devient un programme.

Tester une clé avec in

À éviter

operateur in OPERATIONS

À faire

Object.hasOwn(OPERATIONS, operateur)

Pourquoi : "constructor" in {} vaut true.

Installer sans regarder

À éviter

npm install reakt-hooks-pro  // suggéré

À faire

Vérifier le nom sur le registre d'abord

Pourquoi : Un nom inventé peut avoir été enregistré par un attaquant.

5Subtilités à connaître

  • ◆La distance d'édition compte les lettres à ajouter, retirer ou remplacer : deux lettres échangées comptent pour 2.
  • ◆Les attaques par noms de paquets inventés ont un nom : le « slopsquatting ».
  • ◆Un audit automatique donne des alertes ; la décision d'accepter reste humaine.

6Vérifie ta compréhension

Question 1/3

Score 0

"constructor" in {} vaut…

Envie d'essayer ? Ouvre le Labo et recopie les exemples pour les modifier.