Tiens, je reviens ici avec un nouveau morceau de troll : Il ne FAUT PAS coder en C !
J'ai un peu regardé une technique de test de programmes ammusante, le fuzzing qui consiste globalement à donner des entrées moisis à un programme et à regarder comment il réagit. J'ai écris un petit "bit flip", qui prend un fichier sein, permute des bits au pifomètre, et le donne en entrée au programme à tester. En moins d'une heure de test (test full automatique, donc ça me prend pas de temps...), j'ai produit un .class qui fait crasher la machine virtuelle GNU sur signal 11, un fichier pdf qui fait pareil avec acrobat reader (le 8.blah, pas le 9, mais je n'ai pas pu le tester pour de vrai). Bon, soyons honnete, la JVM de sun a résisté.
Avec l'outil Mangleme, je produit facilement un .html qui fait crasher firefox3 sous kubuntu (pas sous d'autres distribs, je sais pas bien pourquoi), et amaya, le browser du W3C s'envoie dans les roses à chaque fois.
Bref, le C est un langage completement dépassé, qui est la cause de plus de 90% des failles de sécurités trouvées puisque les buffer-overflow y sont légions.
Donc si le choix c'est C++ ou C, prend le C++ en utilisant les vectors qui vérifient les bornes des tableaux !.
Bon après je vous rassure hein, un petit
continuera un représenter un problème de sécurité, même en C++...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 #include <stdio.h> main(int argc, char *argv[]){ if(argc>1) printf(argv[1]); return(0); }
Codez en autre chose, vous couterez moins cher à la société :-)
Partager