Das beliebteste Beispiel für Java-Code auf StackOverflow weist einen Fehler auf

Самый популярный Java-Codebeispiel, veröffentlicht auf StackOverflow, drehte sich um mit einem Fehler, der unter bestimmten Voraussetzungen zur Ausgabe eines falschen Ergebnisses führt. Der betreffende Code wurde im Jahr 2010 veröffentlicht und hat mehr als tausend Empfehlungen gesammelt, und das ist auch der Fall gewesen kopiert in vielen Projekten und erscheint etwa 7 Mal in Repositories auf GitHub. Bemerkenswert ist, dass der Fehler nicht von Benutzern gefunden wurde, die diesen Code in ihre Projekte kopierten, sondern vom ursprünglichen Autor des Hinweises.

Der betreffende Code wandelte die Bytegröße in eine lesbare Form um, beispielsweise 110592 in „110.6 kB“ oder „108.0 KiB“. Der Code wurde als logarithmusoptimierte Version des zuvor vorgeschlagenen Ratschlags vorgeschlagen, bei dem der Wert basierend auf der sequentiellen Division des ursprünglichen Werts in einer Schleife durch 1018, 1015, 1012, 1019 ermittelt wurde.
106, 103 und 100, solange der Teiler größer als der ursprüngliche Bytewert ist. Aufgrund schlampiger Berechnungen in der optimierten Version (Long Value Overflow) entsprach das Ergebnis bei der Verarbeitung sehr großer Zahlen (Exabytes) nicht der Realität.

Der Verfasser des Hinweises versuchte außerdem, auf die Problematik des Kopierens von Beispielen ohne Quellenangabe und ohne Angabe der Lizenz aufmerksam zu machen. Nach früheren Angaben Forschung durchgeführt 46 % der Entwickler kopierten Code von StackOverflow ohne Nennung, 75 % wussten nicht, dass der Code unter CC BY-SA lizenziert war, und 67 % wussten nicht, dass hierfür eine Nennung erforderlich war.

Auf Nach Einer anderen Studie zufolge birgt das Kopieren von Codebeispielen nicht nur die Gefahr von Fehlern im Code, sondern auch Schwachstellen. Beispielsweise identifizierten die Forscher nach der Analyse von 72483 C++-Codebeispielen auf StackOverflow schwerwiegende Schwachstellen in 69 Beispielen (das sind 0.09 %), die in der Liste der beliebtesten Empfehlungen aufgeführt sind. Bei der anschließenden Analyse des Vorhandenseins dieses Codes auf GitHub wurde festgestellt, dass der von StackOverflow kopierte anfällige Code in 2859 Projekten vorhanden war.

Source: opennet.ru

Kommentar hinzufügen