Die gevare van kode-afhanklikheid van derdepartye

As jy inteken op 'n diens vanaf 'n skakel op hierdie bladsy, kan Reeves and Sons Beperk 'n kommissie verdien. Sien ons etiese verklaring.

Daar is 'n paar goeie dinge oor die manier waarop sagteware op die internet werk. Vir die eerste keer is daar 'n enorme nie-amptelike netwerk van miljoene mense wat bydra tot 'n reuse-opberging van kodefragmente wat help om baie meer miljoene toepassings aan te wakker.

Elke keer as u 'n klein skakel onderaan 'n webblad sien wat sê: "Aangedryf deur so-en-so", sien u hierdie samewerkende effek in aksie.

En natuurlik is die hoofrede waarom mense van hierdie derdeparty-deling en -samewerking hou, dat dit jou baie ure in ontwikkelingstyd kan bespaar, omdat jy nie iets heruitvind wat reeds bestaan ​​nie.

Maar selfs met hierdie groot voordele van die derdeparty-kodedelingstelsel, is daar baie redes waarom jy dalk wil vermy om van daardie kodefragmente gebruik te maak, soos ons op die punt staan ​​om te sien ...

1. Potensiële sekuriteitsrisiko's

Omdat bykans alle kodes wat op die internet beskikbaar is, open source is, is dit 'n goeie weddenskap dat as daar 'n kwaadwillige loonvrag in 'n gegewe toepassing is, dit vinnig deur die ontwikkelaarsgemeenskap ontdek sal word en vinnig reggestel word.

Baie van hierdie kodefragmente word honderde of selfs duisende kere per dag afgelaai, en nie elke administratiewe span doen 'n goeie werk om 'n veilige stelsel vir kodedeling te handhaaf nie.

Hoe groter en meer ingewikkeld 'n toepassing is, hoe makliker is dit om dit te besmet deur 'n paar reëls kode op 'n obskure plek by te voeg. Byna niemand neem die tyd om elke reël kode in 'n toepassing na te gaan nie, omdat hulle aanvaar dat die kode vertrou kan word.

'N Uiters bekwame programmeerder kan gewoonlik die kwaadwillige aard van die kode verduister, en slegs 'n ander baie vaardige programmeerder sal agterkom wat die doel daarvan is ... as die kwaadwillige kodefragment opgespoor word.

2. U besit dit nie

Dit is eintlik 'n kombinasie van probleme. Die eerste is dat u onderhewig is aan verskillende lisensievoorwaardes. As u veelvuldige kodefragmente het wat op 'n enkele webblad of toepassing gebruik word, is u moontlik onderhewig aan verskillende lisensievoorwaardes en -voorwaardes, en sommige van hierdie faktore kan in konflik met mekaar wees.

Natuurlik doen byna niemand die moeite om hierdie vervelige lyste van bepalings en voorwaardes te lees nie, maar dit kan moontlik 'n fout wees.

Dit sal veral 'n fout wees as een of ander voorwaarde in die lisensie-ooreenkoms veroorsaak het dat jy die een of ander wet in jou eie land of in die land waar jou bediener geleë is, oortree.

Die ander probleem is dat as jy nie kode besit nie, jy geen beheer daaroor het nie, en jy verstaan ​​dalk nie noodwendig alles wat dit doen of hoe dit werk nie.

Dit beteken dat as iemand 'n verandering aan die kode maak, jy dalk vasgevang is met daardie verandering, veral as jy getrou opdaterings, regstellings, opgraderings en nuwe weergawes installeer sodra hulle as stabiel vrygestel word, of as jy heeltemal staatmaak op inhoudlewering netwerke vir u derdeparty-oplossings.

3. U kry dikwels veel meer as wat u nodig het

Derdeparty-kode werk gewoonlik om die werk te doen wat jy wil hê, maar soms bevat dit allerhande ekstra kenmerke wat jy nie nodig het nie en waarskynlik nooit sal gebruik nie.

In sommige gevalle kan jy nie daardie ekstra kenmerke maklik of selfs glad nie verwyder nie. Jy moet dalk ook kompromieë aangaan. Die kenmerk kan iets baie naby doen aan wat jy beplan, maar nie presies wat jy beplan nie. Jy verhandel awesomeness ter wille van minder werk om te doen, en dit is nie altyd 'n goeie handel nie.

4. Verskeie vlakke van afhanklikheid van derdepartye kan lei tot werklike probleme

Baie oopbronprojekte gebruik dieselfde derdeparty-kodefragmente op verskillende maniere om hul sagteware te vervaardig. Meeste van die tyd is dit nie 'n slegte ding nie, maar dit kan tot moeilikheid lei.

Deesdae installeer baie ontwikkelaars nie eens die fragmente wat hulle gebruik nie, maar trek dit op aanvraag van inhoudafleweringsnetwerke af. Die gevaar hiervan is skouspelagtig geïllustreer deur die Left-Pad-insident van 2016.

Elke ketting is net so sterk soos sy swakste skakel. Hierdie ketting van afhanklikhede beteken dat indien enige skakel op enige plek langs die ketting gebreek of gekompromitteer is, die hele ketting die risiko loop om te wanfunksioneer. In sommige situasies kan dit baie duur wees.

Niemand sou die krag vermoed het in die 11 reëls kode wat in daardie goedaardige klein funksie genaamd Left-Pad vervat is nie, maar toe daardie spesifieke kettingskakel misluk het, het dit baie groot webwerwe tot stilstand gebring.

Die grootste deel daarvan was dat die meeste mense wat Left-Pad gebruik het geen idee gehad het dat hulle dit gebruik, wat dit gedoen het of hoe om die probleem op te los nie. Soos genoem by item 2, as jy dit nie besit nie, sal jy dit dalk nie noodwendig verstaan ​​nie.

Left-Pad was 'n baie eenvoudige funksie wat net 'n paar spasies aan die linkerkant van 'n lyn byvoeg om seker te maak dat die lyn die korrekte lengte is. Die probleem hier is nou dat enige bekwame programmeerder daardie funksionaliteit maklik kan herhaal.

Dit is absoluut nie nodig dat enige toepassing van hierdie derdeparty-funksie afhanklik is nie, en tog het duisende webwerwe sagteware gebruik wat dit ingesluit het, insluitend Netflix, Facebook en Reddit. Dit was net 'n gelukskoot dat dit in hierdie geval 'n baie eenvoudige funksie was wat die ketting verbreek het, en nie 'n werklik ingewikkelde funksie wat sy eie ketting van afhanklikhede gehad het nie.

Die belangrikste punt is dat as u dit self kan bou, moet u dit waarskynlik doen!

Uiteindelik besluit die besluit of u 'n derde party-kode in u projek moet gebruik, neer op 'n reeks ingewikkelde besluite wat nooit ligtelik geneem moet word nie. Die faktore wat u moet oorweeg, is sekuriteit, wettigheid, koste, tyd en stabiliteit.

Om die besluitnemingsproses eenvoudiger te maak, sal die volgende toetstoestand waarskynlik help.

INDIEN een van hierdie faktore waar is:

  • die funksie wat u wil hê is eenvoudig
  • u (of u span) het die vermoë om die funksie te skep
  • daar is genoeg tyd om die funksie te skep
  • u aansoek het goeie sekuriteit nodig
  • u kommer het oor potensiële regsprobleme wat verband hou met lisensie van derdepartye
  • dit is belangrik dat u aansoek nooit sal misluk nie

DAN moet jy dit self bou,

Anders kan dit doeltreffender wees om die funksies van derdepartye te gebruik, mits u bewus is van die potensiële probleme en dat u 'n strategie in plek het wat u sal doen as die probleme opduik.

Bogdan Rancea

Bogdan is 'n stigterslid van Inspired Mag, en het bykans 6 jaar ervaring in hierdie periode opgedoen. In sy vrye tyd studeer hy graag klassieke musiek en verken visuele kuns. Hy is ook behep met fixies. Hy besit al 5.

Kommentaar Kommentaar

Lewer Kommentaar

Jou e-posadres sal nie gepubliseer word nie. Verpligte velde gemerk *

Gradering *

Hierdie webwerf gebruik Akismet om spam te verminder. Leer hoe jou opmerking verwerk is.