Das am häufigsten verwendete Java-Code-Snippet für Stack Overflow enthält einen Fehler

Javac

Eine Studie veröffentlicht in Oktober von 2018 in der Zeitschrift Empirical Software Engineering von den Wissenschaftlern Sebastian Baltes und Stephan Diehl ergab, dass ein Code-Snippet in bereitgestellt Antwort auf eine Frage von Stapelüberlauf im September 2010 von Andreas Lundblad, Java-Entwickler bei Palantir, Es ist das am häufigsten verwendete Java-Code-Snippet auf der Community-Plattform.

Jedoch in einem Beitrag letzte Woche, Lundblad erklärte, dass der Code fehlerhaft sei und die Anzahl der Bytes falsch konvertiere in für Menschen lesbaren Formaten. Der fragliche Code hat mehr als tausend Empfehlungen gesammelt und war auch in vielen Projekten enthalten und befindet sich ungefähr siebentausend Mal in Repositories auf GitHub.

Es ist bemerkenswert, dass Der Fehler wurde von den Benutzern nicht gefunden die diesen Code in ihren Projekten verwendet haben, aber vom ursprünglichen Autor des Tippes.

Der betrachtete Code konvertierte die Bytegröße in lesbare Form, z. B. 110592 konvertiert in 110.6 kB oder 108.0 kB. Der Code wurde als eine Variante des zuvor vorgeschlagenen Hinweises vorgeschlagen, der unter Verwendung von Logarithmen optimiert wurde, wobei der Wert durch Teilen des Anfangswertes in einer Schleife durch «bestimmt wurde10 18, 10 15, 10 12, 10 19, 10 6, 10 3 und 10 0 " , auch wenn der Divisor größer als der ursprüngliche Wert in Bytes ist.

Aufgrund ungenauer Berechnungen in der optimierten Version (langer Wertüberlauf), das Ergebnis der Verarbeitung sehr großer Zahlen (Exabyte) entsprachen nicht der Realität.

Lundblad erklärte, dass der Code einen geringfügigen Konvertierungsfehler enthielt, der nur zu geringfügig ungenauen Schätzungen der Dateigröße führte. Das heißt, es wird geschätzt, dass es viel schlimmer gewesen wäre.

Der Code könnte eine Sicherheitslücke enthalten haben, zum Beispiel. Wenn dies der Fall wäre, hätte es Monate oder Jahre gedauert, um alle anfälligen Anwendungen zu reparieren und Benutzer Angriffen auszusetzen.

Der Verfasser des Ratschlags versuchte auch, auf das Problem aufmerksam zu machen Beispiele ohne Quellenangabe und ohne Angabe einer Lizenz zu verwenden.

„In gemeinsamen Sitzungen mit mehreren menschlichen Codierern haben wir jeden Code manuell auf Sicherheitslücken gemäß den Anweisungen von CWE (Common Weakness Enumeration) überprüft.

Von den 72,483 gescannten Codefragmenten, die in mindestens einem von GitHub gehosteten Projekt verwendet wurden, fanden wir insgesamt 69 anfällige Codefragmente, die in 29 Typen eingeteilt wurden. Viele der untersuchten Codefragmente sind noch nicht behoben ", sagten die Forscher in ihrem Bericht.

Die 69 anfälligen Codefragmente gefunden auf Stapelüberlauf in insgesamt 2859 GitHub-Projekten wiederverwendet. Um die Qualität der gemeinsam genutzten Code-Snippets in Stack Overflow zu verbessern, haben sie eine Browser-Erweiterung entwickelt, mit der Stack Overflow-Benutzer beim Herunterladen auf die Plattform nach Schwachstellen in den Snippets suchen können.

Trotz der Vorbehalte der Forscher kopieren Entwickler den Stapelüberlaufcode weiterhin in ihre Projekte, ohne eine Analyse durchzuführen.

Ashkan Sami, außerordentlicher Professor für IT, Ingenieur- und Informationstechnologie an der Shiraz Universität im Iran, sagte das

„Die Untersuchung war ein Versuch zu untersuchen, wie fehlerhafter Code von Stack Overflow zu GitHub migriert wird. Grundsätzlich haben wir versucht zu zeigen, dass die Verwendung von Stack Overflow-Code ohne genaue Betrachtung zu Anwendungsschwachstellen führen kann “, sagte Sami. Die Studie bezieht sich auch auf einen wissenschaftlichen Artikel aus dem Jahr 2017.

Laut diesem Artikel wurden 1161 unsichere Codefragmente, die auf Stack Overflow veröffentlicht wurden, in 1.3 Millionen Android-Apps verwendet, die bei Google Play verfügbar sind.

Zusätzlich zu einer früheren Studie wussten 46% der Entwickler, die StackOverflow-Code ohne Angabe des Autors verwendeten, 75% nicht, dass der Code unter CC BY-SA lizenziert ist, und 67% wussten nicht, dass dies die Notwendigkeit einer Zuordnung impliziert.

Daten aus anderen Studien zufolge ist die Verwendung des Beispielcodes nicht nur mit dem Risiko von Fehlern im Code verbunden, sondern auch mit Schwachstellen.

Nach der Analyse von 72483 C ++ - Codebeispielen in StackOverflow identifizierten die Forscher beispielsweise schwerwiegende Sicherheitslücken in 69 Beispielen (0.09%), die in der Liste der beliebtesten Empfehlungen enthalten sind.

Quelle: https://programming.guide


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.