Pour compléter ce qu'a dit Marc, je dirais qu'il faudrait :
- Utiliser f-string dans la mesure du possible (je ne sais pas si flask est en Python3)
- Détecter toute présence des caractères ';' et '%' dans les entrées et annuler toute la requête
Comme protection ultime, et lorsque les requêtes sont complexes, j'ai utilisé systématiquement PLY/SLY (Lex & Yacc pour Python) pour filtrer mes "entrées". Si les requêtes contiennent des dates, combinées avec des mots et des fréquences (par exemple). Un analyseur à base de lexique/grammaire est indispensable et surtout le seul moyen sûr et efficace de filtrer les entrées. Le filtrage à l'aide de regexp() ne peut être sûr que dans des cas extrêmement simples (mais c'est très rare finalement).
dc
_______________________________________________ gull mailing list [email protected] https://forum.linux-gull.ch/mailman/listinfo/gull
