Die gevare van kode-afhanklikheid van derdepartye

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 deel en samewerking is dat dit u baie ure in ontwikkelingstyd kan bespaar, omdat u nie weer iets uitvind wat reeds bestaan ​​nie. Maar selfs met hierdie groot voordele van die derdeparty-kode-delingsisteem, is daar baie redes waarom u dalk nie die gebruik van hierdie kodefragmente wil vermy nie, soos ons binnekort gaan sien ...

1. Potensiële veiligheidsrisiko'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 pla niemand amper om hierdie vervelige lyste van voorwaardes en voorwaardes te lees nie, maar dit kan moontlik 'n fout wees. In die besonder sou dit 'n fout wees as die een of ander voorwaarde in die lisensieooreenkoms veroorsaak dat u die wet in u land of in die land waar u bediener geleë is, oortree.

Die ander probleem is dat as u nie 'n kode het nie, u geen beheer daaroor het nie, en u miskien nie noodwendig alles verstaan ​​wat dit doen of hoe dit werk nie. Dit beteken dat as iemand die kode verander, u dalk met die verandering sal vassteek, veral as u opdaterings, lappe, opgraderings en nuwe weergawes getrou installeer sodra dit so stabiel vrygestel is, of as u geheel en al op inhoudlewering vertrou. netwerke vir u derdeparty-oplossings.

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

Derdepartykode werk gewoonlik om die werk te doen wat u wil, maar soms bevat dit allerlei ekstra funksies wat u nie nodig het nie en waarskynlik nooit sal gebruik nie. In sommige gevalle kan u die ekstra funksies nie maklik of selfs nie verwyder nie. Miskien moet u ook kompromie aangaan. Die funksie kan iets baie naby aan u doen, maar nie presies wat u van plan is nie. U verhandel ongelooflike dinge om minder werk te doen, en dit is nie altyd 'n goeie handel nie.

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

Baie open source projekte gebruik dieselfde kodes van derde partye op verskillende maniere om hul sagteware te vervaardig. Dit is meestal nie 'n slegte ding nie, maar dit kan tot probleme lei. Talle ontwikkelaars installeer deesdae nie eens die fragmente wat hulle gebruik nie, maar trek dit op aanvraag vanaf inhoudleweringsnetwerke op aanvraag. Die gevaar hiervan is skouspelagtig geïllustreer deur die Left-Pad Insident van 2016.

Elke ketting is net so sterk soos die swakste skakel. Hierdie vasberadenheid van afhanklikhede beteken dat indien enige skakel op enige plek langs die ketting gebreek of gekompromitteer word, die hele ketting die gevaar loop om te funksioneer. In sommige situasies kan dit redelik duur wees. Niemand sou vermoed het dat die krag in die 11 reëls kode bevat in die goedaardige klein funksie genaamd Left-Pad nie, maar toe daardie spesifieke kettingverbinding misluk, het dit baie groot webwerwe tot stilstand gebring. Die grootste deel daarvan was dat die meeste mense wat die 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 in item 2 aangedui, sal u dit nie noodwendig verstaan ​​as u dit nie besit nie.

Left-Pad was 'n baie eenvoudige funksie wat net 'n paar spasies aan die linkerkant van die lyn voeg om seker te maak dat die lyn die regte lengte het. Die probleem hier is dat enige bekwame programmeerder die funksionaliteit maklik kan herhaal. Dit is absoluut nie nodig dat 'n toepassing afhang van hierdie derdeparty-funksie nie, en tog het duisende webwerwe sagteware gebruik wat dit ingesluit het, insluitend Netflix, Facebook en Reddit. Dit was net 'n goeie geluk dat dit in hierdie geval 'n baie eenvoudige funksie was wat die ketting gebreek het, en nie een of ander ingewikkelde funksie wat sy eie afhanklikheidsketting 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.

opskrif van hoofde met vergunning van Stephanie Tucker

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.