For software written completely in Java, buffer overflow errors are impossible. The language simply does not provide any way to store data into memory that has not been properly allocated. To do that, you would need a pointer that points to unallocated memory or you would have to refer to an array location that lies outside the range allocated for the array. As explained above, neither of these is possible in Java. (However, there could conceivably still be errors in Java's standard classes, since some of the methods in these classes are actually written in the C programming language rather than in Java.)
da wäre ich mir nicht so sicher ... vor ein paar Jahren hatte ich mal einen Artikel gelesen wo der Sicherheitskontext für Klassen ausgehebelt wurde ... sprich - in einem Applet konntest Du auf lokale Dateien zugreifen/verändert (wenn der Surfer Admin war) ... der Fehler dürfte zwar inzwischen behoben sein ... aber die VM ist einfach zu Komplex als das sie keine weiteren Fehler hätte ... ich zitiere mal kurz Wildcard "Schau dir die Bugs an." - da dürften solche Fehler auch weiterhin (nicht direkt) drinnen stehenxdavidx hat gesagt.:In Java gibt es keine Möglichkeit dies zutun[...]
xdavidx hat gesagt.:Gibt es evtl. ein Buch das dieses Thema behandelt?
Wo soll der auftreten? Doch nur in der VM selbst, oder den nativ implementierten Methoden. Beides kann (und wird) problemlos ersetzt werden solange die Schnittstelle sich nicht verändert.SlaterB hat gesagt.:aber sowas wie ein BufferOverflow ist doch kein einzelner Bug sondern ein konkretes Sicherheits-Un-Feature (oder Unsicherheits-Feature ),
das für alle Zeiten in einer Sprache interessant bleiben wird, die es hat,
Aber genau darauf läuft es doch hinaus. Die bekannten Schwachstellen sind allesamt Bugs.SlaterB hat gesagt.:ich sag nicht, dass ich eine Antwort weiß,
ich weise nur darauf hin, dass das mehrfache 'siehe Bugs/ Bücher gibts nicht' irgendwie am Thema vorbei geht, meiner Meinung nach
Schon klar, aber es geht speziell um Java und Java läuft sozusagen auf einem eigenen virtuellen Rechner. Wenn der virtuelle Rechner eine perfekte Umsetzung der Spec ist, gibt es keine solchen Probleme, ergo ist alles andere eine Abweichung von der Spezifikation und daher ein Bug.
Ja klar, bis auf die Bugs eben... :roll:Ist die JVM eine perfekte Umsetzung?Ist die JVM eine perfekte Umsetzung?
öhm .NET?SlaterB hat gesagt.:hey, in Java gibts einen SecurityManager,
welche sonstige Sprache hat den schon?
da ich Java im Moment nur private einsetze und vorwiegend mit .NET arbeite, erlaube ich mir die Aussage zu erweitern ... mit Managed Sprachen (Java/.NET/$WHATEVER) ist es immer sicherer (sofern kein Bug vorliegt) als mit nativen Sprachenmake hat gesagt.:In einem Javaforum? Bestimmt
da ich Java im Moment nur private einsetze und vorwiegend mit .NET arbeite, erlaube ich mir die Aussage zu erweitern ... mit Managed Sprachen (Java/.NET/$WHATEVER) ist es immer sicherer (sofern kein Bug vorliegt) als mit nativen Sprachen
Weil es nur wenig nativen Code gibt und die VM sehr 'mature' und hervorragend getestet ist. Aber es gab natürlich schon Exploits. Insbesondere bei Applets um aus der Sandbox auszubrechen.xdavidx hat gesagt.:Das gute ist die Bugs in Java scheinen fast garnichts für Exploits herzugeben bzw. die Bösen befassen sich nicht richtig damit!