Bonjour,
J'aurais juste voulu savoir si il est possible d'avoir un buffer overflow en java et est-il détecté par la machine virtuelle java ? à la compilation ? à l'execution ? est-ce dangereux ?
Merci.
Bonjour,
J'aurais juste voulu savoir si il est possible d'avoir un buffer overflow en java et est-il détecté par la machine virtuelle java ? à la compilation ? à l'execution ? est-ce dangereux ?
Merci.
Je dirais que c'est détecté à l'exécution seulement. Lorsque tu démarres la JVM tu peux paramétrer la quantité de mémoire à allouer à cette dernière.
Est-ce dangereux ? Ca dépend, si tu rentres dans une boucle infinie : OUI car plantage du programme tout simplement, par contre si c'est juste la quantité de mémoire allouée qui est trop juste : NON car dans ce cas, il suffira d'augmenter le paramètre ou éventuellement optimiser ton code.
Si tu parles des buffer overflow qui permettent d'injecter du code malicieux dans certaines applis et de l'executer la reponse est non, cela ne peut pas arriver en Java (a moins d'une grosse faille encore inconnue dans la JVM). Tu peux avoir des erreurs liees a un usage trop important de la memoire comme le dit iohack mais cela ne conduira pas a des failles de securite comme dans un programme C par exemple.
Ok merci pour vos réponses ! Si vous connaissez, savez-vous quels sont les erreurs indétectables par des méthodes d'analyse statique en java ? Car j'ai déjà réglé le problème des boucles infinies mais y-a-t-il d'autres problèmes ?
Indetectables je ne sais pas, mais detectables, IntelliJ IDEA en propose plusieurs centaines et ils en rajoutent a chaque version.
Ok dommage car je cherche à régler les indécidabilités de cette analyse statique en utilisant l'analyse dynamique.
Merci.
Ben va lire la liste des analyses statiques d'IntelliJ, ca te donnera deja une idee de tout ce qu'on peut/sait faire aujourd'hui.
Partager