Parti du constat que de nombreux problèmes de sécurités sont causés par des entrées erronées mais cependant acceptées par les logiciels, je me posais quelques questions :
- pourquoi ces entrées ne sont-elle pas parsées via un analyseur généré par bison par exemple au lieu des parseurs codés manuellement ? Est-ce lié à la difficulté d'exprimer les entrées valides (par exemple une RFC) sous forme d'une grammaire d'un point de vue général ? ou d'une grammaire LALR(1) valide ? Est-ce lié à des impératifs de performances (bien que les parseurs générés soient plutôt efficaces) ?
- est-ce que le fait d'écrire proprement sous forme de grammaire le langage accepté ne diminuerait-il pas en partie les risques d'entrées acceptées à tort ?
# Re: Sécurité : validation des entrées et grammaires
Posté par Xavier Teyssier (site web personnel) . Évalué à 3.
Je pense qu'effectivement, utiliser une grammaire précise permettrait d'éviter un certain nombre d'erreur des fichiers de config.
Malheureusement, je pense que peu de programmeurs sont près à passer du temps à comprendre le fonctionnement de bison (ou assimilés) pour creer un parseur d'une grammaire qu'il devrait définir précisément. C'est que ça prend quand même du temps, ce truc là, et bison n'est pas vraiment un logiciel que je qualifierais de simple d'utilisation!
# Re: Sécurité : validation des entrées et grammaires
Posté par esprit . Évalué à 1.
La plupart du temps, quand c'est mal codé ou trop vite => ca fuit. Si t'es capable de prendre le temps de generer un parser, alors tu peux prendre le temps de coder proprement le tout "a la main".
Et pis surtout, je crois que c'est du au fait que les parsers générés par des outils tels que flex et bison (ou Lex et Yacc) sont de grosses usines à code bien lourdes quand meme...
# Re: Sécurité : validation des entrées et grammaires
Posté par doublehp (site web personnel) . Évalué à 1.
- syntaxiques
- grammaticaux
- sémantiques
Trois conceptes radicalements differents ...
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.