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.

Every time you see a little link at the bottom of a webpage that says “Powered by So-And-So”, you’re witnessing this collaborative effect in action.

And of course the main reason people like this third party sharing and collaboration is that it can save you many hours in development time, because you’re not re-inventing something that already exists.

But even with these great benefits of the third party code sharing system, there are plenty of reasons why you might want to avoid making use of those code fragments, as we’re about to see…

1. Potensiële sekuriteitsrisiko's

Because nearly all code that drives anything on the Web is open source, it’s a fair bet that if there is any malicious payload in a given application, it will be quickly discovered by the developer community and rapidly corrected.

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. You don’t own it

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.

The other issue is that if you don’t own code, you have no control over it, and you may not necessarily understand everything it does or how it works.

That means if somebody makes some change to the code, you may be stuck with that change, especially if you faithfully install updates, patches, upgrades and new versions as soon as they’re released as stable, or if you rely entirely on content delivery networks for your third party solutions.

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

Third party code usually works to do the job you want, but sometimes it contains all kinds of extra features that you don’t need and will probably never use.

In some cases you can’t remove those extra features easily or even at all. You may also have to compromise. The feature may do something very close to what you intend, but not exactly what you intend. You’re trading awesomeness for the sake of having less work to do, and that’s not always a good trade.

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

Many open source projects use the same third party code fragments in different ways to produce their software. Most of the time that’s not a bad thing, but it can lead to trouble.

These days, many developers don’t even install the fragments they are using, but pull them at run time from content delivery networks on demand. The danger of this was illustrated spectacularly by the Left-Pad Incident of 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.

The major part of it was that most people who were using Left-Pad had no idea they were using it, what it did, or how to fix the problem. As stated at item 2, if you don’t own it, you may not necessarily understand it.

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.