Nebezpečí závislosti na kódu třetích stran

Pokud se přihlásíte k odběru služby z odkazu na této stránce, může společnost Reeves and Sons Limited získat provizi. Podívejte se na naše etické prohlášení.

Na tom, jak software funguje na internetu, je několik opravdu dobrých věcí. Pro začátek existuje obrovská neoficiální síť milionů lidí, kteří přispívají do obrovského úložiště fragmentů kódu, které pomáhají pohánět mnoho dalších milionů aplikací.

Pokaždé, když ve spodní části webové stránky uvidíte malý odkaz s nápisem „Powered by So-And-So“, jste svědky tohoto efektu spolupráce v akci.

A samozřejmě hlavním důvodem, proč se lidem toto sdílení a spolupráce třetí strany líbí, je to, že vám může ušetřit mnoho hodin času na vývoj, protože nevynalézáte znovu něco, co již existuje.

Ale i přes tyto skvělé výhody systému sdílení kódu třetích stran existuje spousta důvodů, proč byste se mohli chtít vyhnout používání těchto fragmentů kódu, jak uvidíme…

1. Potenciální bezpečnostní rizika

Protože téměř veškerý kód, který řídí cokoli na webu, je open source, je spravedlivá sázka na to, že pokud se v dané aplikaci vyskytne nějaká škodlivá zátěž, komunita vývojářů ji rychle odhalí a rychle napraví.

Mnoho z těchto fragmentů kódu se však stahuje stovky nebo dokonce tisícekrát denně a ne každý administrativní tým odvádí dobrou práci při udržování bezpečného systému sdílení kódu.

Čím větší a složitější aplikace je, tím snazší je infikovat ji přidáním několika řádků kódu na nějaké nejasné místo. Téměř nikdo si nedává čas prozkoumat každý řádek kódu v aplikaci, protože obecně předpokládá, že kódu lze důvěřovat.

Vysoce kvalifikovaný programátor obvykle dokáže dobře oblafnout zákeřnou povahu kódu a pouze jiný vysoce zkušený programátor zjistí, jaký je jeho účel... pokud je fragment škodlivého kódu detekován.

2. Nevlastníš to

To je vlastně kombinace problémů. První je, že se na vás mohou vztahovat různé licenční podmínky. Pokud máte na jedné webové stránce nebo aplikaci použito více fragmentů kódu, může se na vás ve skutečnosti vztahovat několik různých licenčních podmínek a některé z nich mohou být ve skutečnosti ve vzájemném konfliktu.

Samozřejmě jen málokdo se obtěžuje číst tyto nudné seznamy podmínek, ale to může být potenciálně chyba.

Zejména by bylo chybou, pokud by některá podmínka v licenční smlouvě způsobila, že byste porušili některé zákony ve své domovské zemi nebo v zemi, kde se nachází váš server.

Dalším problémem je, že pokud kód nevlastníte, nemáte nad ním žádnou kontrolu a nemusíte nutně rozumět všemu, co dělá nebo jak funguje.

To znamená, že pokud někdo provede nějakou změnu v kódu, můžete u této změny uvíznout, zvláště pokud poctivě instalujete aktualizace, záplaty, upgrady a nové verze, jakmile jsou vydány jako stabilní, nebo pokud se zcela spoléháte na doručování obsahu. sítě pro vaše řešení třetích stran.

3. Často dostanete mnohem více, než potřebujete

Kód třetí strany obvykle funguje tak, aby vykonával práci, kterou chcete, ale někdy obsahuje všechny druhy funkcí navíc, které nepotřebujete a pravděpodobně nikdy nepoužijete.

V některých případech nemůžete tyto dodatečné funkce odstranit snadno nebo dokonce vůbec. Možná budete muset udělat kompromis. Funkce může dělat něco velmi blízkého tomu, co zamýšlíte, ale ne přesně to, co zamýšlíte. Obchodujete úžasně kvůli tomu, abyste měli méně práce, a to není vždy dobrý obchod.

4. Více úrovní závislosti na třetí straně může vést ke skutečným problémům

Mnoho projektů s otevřeným zdrojovým kódem používá k výrobě svého softwaru stejné fragmenty kódu třetích stran různými způsoby. Většinou to není špatná věc, ale může to vést k potížím.

V dnešní době mnoho vývojářů ani neinstaluje fragmenty, které používají, ale stahuje je za běhu ze sítí pro doručování obsahu na vyžádání. Nebezpečí toho bylo působivě ilustrováno incidentem Left-Pad z roku 2016.

Každý řetěz je jen tak silný, jak silný je jeho nejslabší článek. Toto zřetězení závislostí znamená, že pokud je jakýkoli článek kdekoli v řetězci přerušen nebo kompromitován, celý řetězec je vystaven riziku selhání. V některých situacích to může být docela drahé.

Nikdo by nepochyboval o síle obsažené v 11 řádcích kódu obsažených v té neškodné malé funkci zvané Left-Pad, ale když tento konkrétní článek řetězu selhal, zastavilo to skřípění mnoha velkých webových stránek.

Hlavní část spočívala v tom, že většina lidí, kteří používali Left-Pad, neměla tušení, že jej používají, co dělá nebo jak problém vyřešit. Jak je uvedeno v bodě 2, pokud jej nevlastníte, nemusíte mu nutně rozumět.

Left-Pad byla velmi jednoduchá funkce, která pouze přidala několik mezer na levou stranu čáry, aby se ujistila, že čára má správnou délku. Nyní jde o to, že každý kompetentní programátor může tuto funkci snadno replikovat.

Není absolutně nutné, aby jakákoli aplikace byla závislá na této funkci třetí strany, a přesto tisíce webových stránek používaly software, který ji obsahoval, včetně Netflix, Facebook a Reddit. Bylo jen štěstím, že v tomto případě to byla velmi jednoduchá funkce, která přerušila řetěz, a ne nějaká opravdu komplikovaná funkce, která měla svůj vlastní řetězec závislostí.

Pointa je, že pokud si to dokážete postavit sami, pravděpodobně byste měli!

Rozhodnutí o tom, zda ve svém projektu použít bloky kódu třetích stran, nakonec závisí na řadě komplikovaných rozhodnutí, která by se nikdy neměla brát na lehkou váhu. Faktory, které musíte zvážit, jsou bezpečnost, zákonnost, náklady, čas a stabilita.

Aby byl proces rozhodování jednodušší, pravděpodobně pomůže následující testovací podmínka.

POKUD platí některý z těchto faktorů:

  • požadovaná funkce je jednoduchá
  • vy (nebo váš tým) máte možnost vytvořit funkci
  • na vytvoření funkce je dost času
  • vaše aplikace potřebuje dobré zabezpečení
  • máte obavy z potenciálních právních problémů spojených s licencováním třetích stran
  • je důležité, aby vaše aplikace nikdy selhala

Pak byste si to měli postavit sami,

JINAK může být efektivnější používat funkce třetích stran za předpokladu, že jste si vědomi potenciálních problémů a máte zavedenou strategii, co uděláte, pokud tyto problémy nastanou.

Bogdan Rancea

Bogdan je zakládajícím členem Inspired Mag, který za toto období nasbíral téměř 6 let zkušeností. Ve volném čase rád studuje klasickou hudbu a zkoumá výtvarné umění. Je také docela posedlý opravami. Už jich vlastní 5.

Komentáře 0 Odpovědi

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

Hodnocení *

Tyto stránky používají Akismet k omezení spamu. Zjistěte, jak jsou vaše údaje komentářů zpracovávány.