Die Gefahren der Abhängigkeit von Drittanbieter-Codes

Wenn Sie einen Dienst über einen Link auf dieser Seite abonnieren, verdient Reeves and Sons Limited möglicherweise eine Provision. Siehe unsere Ethikerklärung.

Es gibt ein paar wirklich gute Dinge über die Funktionsweise von Software im Internet. Zum einen gibt es ein riesiges inoffizielles Netzwerk von Millionen von Menschen, die zu einer großen Sammlung von Codefragmenten beitragen, die dazu beitragen, noch mehr Millionen von Anwendungen zu betreiben.

Jedes Mal, wenn Sie unten auf einer Webseite einen kleinen Link mit der Aufschrift „Powered by So-And-So“ sehen, werden Sie Zeuge dieses kollaborativen Effekts in Aktion.

Und natürlich ist der Hauptgrund dafür, dass Menschen diese gemeinsame Nutzung und Zusammenarbeit mit Dritten so mögen, dass sie Ihnen viele Stunden Entwicklungszeit einsparen können, weil Sie nichts neu erfinden, was bereits existiert.

Aber trotz dieser großartigen Vorteile des Code-Sharing-Systems von Drittanbietern gibt es viele Gründe, warum Sie die Verwendung dieser Codefragmente vermeiden sollten, wie wir gleich sehen werden …

1. Mögliche Sicherheitsrisiken

Da fast der gesamte Code, der alles im Web antreibt, Open Source ist, ist es eine faire Wette, dass böswillige Payloads in einer bestimmten Anwendung schnell von der Entwicklergemeinschaft entdeckt und schnell korrigiert werden.

Viele dieser Codefragmente werden jedoch täglich hunderte oder sogar tausende Male heruntergeladen, und nicht jedes Verwaltungsteam leistet gute Arbeit bei der Aufrechterhaltung eines sicheren Systems zur gemeinsamen Nutzung von Code.

Je größer und komplexer eine Anwendung ist, desto einfacher ist es, sie zu infizieren, indem ein paar Codezeilen an einer undeutlichen Stelle hinzugefügt werden. Nahezu niemand nimmt sich die Zeit, um jede Codezeile in einer Anwendung zu überprüfen, da sie im Allgemeinen davon ausgehen, dass der Code vertrauenswürdig ist.

Ein hochqualifizierter Programmierer kann normalerweise die bösartige Natur des Codes gut verschleiern, und nur ein anderer hochqualifizierter Programmierer wird herausfinden, wozu er dient ... wenn das bösartige Codefragment erkannt wird.

2. Sie besitzen es nicht

Dies ist eigentlich eine Kombination von Problemen. Die erste ist, dass Sie verschiedenen Lizenzbedingungen unterliegen können. Wenn mehrere Codefragmente in einer einzelnen Webseite oder Anwendung verwendet werden, unterliegen Sie möglicherweise mehreren verschiedenen Lizenzbedingungen und einige davon stehen möglicherweise in Konflikt miteinander.

Natürlich macht sich kaum jemand die Mühe, diese langwierigen AGB-Listen zu lesen, aber das kann möglicherweise ein Fehler sein.

Insbesondere wäre es ein Fehler, wenn eine Bedingung in der Lizenzvereinbarung dazu führen würde, dass Sie gegen ein Gesetz in Ihrem Heimatland oder dem Land, in dem sich Ihr Server befindet, verstoßen.

Das andere Problem besteht darin, dass Sie, wenn Sie keinen Code besitzen, keine Kontrolle darüber haben und möglicherweise nicht unbedingt alles verstehen, was er tut oder wie er funktioniert.

Das heißt, wenn jemand Änderungen am Code vornimmt, bleiben Sie möglicherweise bei dieser Änderung hängen, insbesondere wenn Sie Updates, Patches, Upgrades und neue Versionen zuverlässig installieren, sobald diese als stabil veröffentlicht werden, oder wenn Sie sich ausschließlich auf die Bereitstellung von Inhalten verlassen Netzwerke für Ihre Drittanbieterlösungen.

3. Sie bekommen oft viel mehr als Sie brauchen

Code von Drittanbietern erfüllt in der Regel die von Ihnen gewünschte Aufgabe, manchmal enthält er jedoch alle möglichen zusätzlichen Funktionen, die Sie nicht benötigen und wahrscheinlich nie nutzen werden.

In einigen Fällen können Sie diese zusätzlichen Funktionen nicht einfach oder gar nicht entfernen. Möglicherweise müssen Sie auch Kompromisse eingehen. Die Funktion bewirkt möglicherweise etwas, das Ihren Absichten sehr nahe kommt, aber nicht genau das, was Sie beabsichtigen. Sie handeln mit Großartigkeit, um weniger Arbeit zu haben, und das ist nicht immer ein guter Handel.

4. Mehrere Ebenen der Abhängigkeit von Dritten können zu echten Problemen führen

Viele Open-Source-Projekte verwenden dieselben Codefragmente von Drittanbietern auf unterschiedliche Weise, um ihre Software zu erstellen. Meistens ist das keine schlechte Sache, kann aber zu Problemen führen.

Heutzutage installieren viele Entwickler die Fragmente, die sie verwenden, nicht einmal, sondern rufen sie zur Laufzeit bei Bedarf aus Content-Delivery-Netzwerken ab. Wie gefährlich dies ist, wurde durch den Left-Pad-Vorfall im Jahr 2016 eindrucksvoll verdeutlicht.

Jede Kette ist nur so stark wie ihr schwächstes Glied. Diese Verkettung von Abhängigkeiten bedeutet, dass die gesamte Kette dem Risiko einer Fehlfunktion ausgesetzt ist, wenn irgendwo in der Kette ein Glied unterbrochen oder beeinträchtigt wird. In manchen Situationen kann das recht kostspielig sein.

Niemand hätte geahnt, welche Leistungsfähigkeit in den 11 Codezeilen dieser harmlosen kleinen Funktion namens Left-Pad steckt, aber als dieses spezielle Kettenglied ausfiel, brachte es viele große Websites kreischend zum Erliegen.

Der Hauptgrund dafür war, dass die meisten Leute, die Left-Pad verwendeten, keine Ahnung hatten, dass sie es benutzten, was es tat oder wie das Problem behoben werden konnte. Wie unter Punkt 2 erwähnt: Wenn Sie es nicht besitzen, verstehen Sie es möglicherweise nicht unbedingt.

Left-Pad war eine sehr einfache Funktion, die lediglich ein paar Leerzeichen auf der linken Seite einer Zeile hinzufügt, um sicherzustellen, dass die Zeile die richtige Länge hat. Das Problem hierbei ist, dass jeder kompetente Programmierer diese Funktionalität problemlos replizieren könnte.

Es besteht absolut keine Notwendigkeit, dass eine Anwendung auf diese Drittanbieterfunktion angewiesen ist, und dennoch verwendeten Tausende von Websites Software, die diese Funktion enthielt, darunter Netflix, Facebook und Reddit. Es war nur ein Glücksfall, dass es in diesem Fall eine sehr einfache Funktion war, die die Kette durchbrach, und nicht eine wirklich komplizierte Funktion, die ihre eigene Kette von Abhängigkeiten hatte.

Die Quintessenz ist, wenn Sie es selbst bauen können, sollten Sie es wahrscheinlich tun!

Letztendlich führt die Entscheidung, ob Codeblöcke von Drittanbietern in Ihrem Projekt verwendet werden, zu einer Reihe komplizierter Entscheidungen, die niemals leichtfertig getroffen werden sollten. Die Faktoren, die Sie berücksichtigen müssen, sind Sicherheit, Rechtmäßigkeit, Kosten, Zeit und Stabilität.

Um den Entscheidungsprozess zu vereinfachen, wird wahrscheinlich die folgende Testbedingung hilfreich sein.

WENN irgendeiner dieser Faktoren zutrifft:

  • Die gewünschte Funktion ist einfach
  • Sie (oder Ihr Team) können die Funktion erstellen
  • Es gibt viel Zeit, um die Funktion zu erstellen
  • Ihre Anwendung benötigt eine gute Sicherheit
  • Sie haben Bedenken hinsichtlich möglicher rechtlicher Probleme im Zusammenhang mit der Lizenzierung durch Dritte
  • Es ist wichtig, dass Ihre Anwendung niemals versagt

DANN solltest du es selbst bauen

Andernfalls ist es möglicherweise effizienter, die Funktionen von Drittanbietern zu verwenden, vorausgesetzt, Sie kennen die potenziellen Probleme und haben eine Strategie für das, was Sie tun sollen, wenn diese Probleme auftreten.

Bogdan Rancea

Bogdan ist Gründungsmitglied von Inspired Mag und hat in diesem Zeitraum fast 6-Jahre Erfahrung gesammelt. In seiner Freizeit studiert er gern klassische Musik und erforscht die bildende Kunst. Er ist auch ziemlich besessen von Fixies. Er besitzt bereits 5.

Kommentare 0 Antworten

Hinterlassen Sie uns einen Kommentar

E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind MIT * gekennzeichnet. *

Rating *

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet werden.