Oh purée... c'est assez effrayant.
Pour introduire volontairement des failles de sécurité, il suffit parfois de modifications mineures. Par exemple remplacer "==" (signe de comparaison) par "=" (assignation). Ces "attaques" sont visible pour un oeil averti.
Mais qu'est-ce qui se passe si l'oeil ne voit plus ? Avec Unicode, il est possible d'utiliser des caractères qui ressemblent à notre alphabet latin, mais qui n'en sont pas, ou pire changer l'ordre d'écriture (gauche-droite) afin que le texte s'affiche d'une manière dans l'éditeur de texte, alors que le compilateur l'interprétera autrement. Cela ouvre la possibilité d'insérer des failles de sécurité pratiquement impossibles à voir, même si vous avez le code source sous les yeux dans votre éditeur de texte.
(Pour un exemple d'inversion gauche-droite, allez sur cette page:
https://sebsauvage.net/wiki/ et recherchez mon adresse email dans la page: Elle s'affiche normalement, mais si vous regardez le source html, c'est un autre texte qui s'affiche).
Je pense qu'il serait intéressant que les éditeurs de texte aient une option pour afficher dans une couleur particulière tout ce qui n'est pas purement "texte latin" (0000-024F), ainsi que les caractères Unicode qui provoquent des modifications (retour arrière, changement de direction).
Des proof-of-concept de cette attaque dans différents langages sont visible là :
https://github.com/nickboucher/trojan-source