Ang Mga Panganib ng Pagsalig sa Code ng Third Party

Mayroong ilang mga talagang magagandang bagay tungkol sa kung paano gumagana ang software sa Internet. Bilang isang panimula, mayroong isang malaking hindi opisyal na network ng milyun-milyong mga tao na nag-aambag sa isang malaking lalagyan ng mga fragment ng code na makakatulong upang mapagana ang maraming milyun-milyong mga application.

Sa tuwing makakakita ka ng isang maliit na link sa ilalim ng isang webpage na nagsasabing "Pinapagana ng So-And-So", nasasaksihan mo ang epekto ng pakikipagtulungan na ito sa pagkilos.

At syempre ang pangunahing dahilan ng mga tao tulad ng pagbabahagi at pakikipagtulungan ng ikatlong partido na ito ay makakapagtipid sa iyo ng maraming oras sa oras ng pag-unlad, dahil hindi mo naimbento muli ang isang bagay na mayroon nang. Ngunit kahit na sa mga magagaling na benepisyo ng system ng pagbabahagi ng code ng third party, maraming mga kadahilanan kung bakit maaari mong iwasan ang paggamit ng mga fragment ng code, dahil malapit na nating makita…

1. Mga potensyal na panganib sa seguridad

Sapagkat halos lahat ng code na nagdadala ng anuman sa Web ay bukas na mapagkukunan, isang makatarungang pusta na kung mayroong anumang nakakahamak na kargamento sa isang naibigay na application, mabilis itong matuklasan ng pamayanan ng developer at mabilis na naitama.

Ngunit marami sa mga fragment ng code na ito ay na-download ng daan-daang o libu-libong beses bawat araw, at hindi bawat koponan ng administratibo ay gumagawa ng isang mahusay na trabaho ng pagpapanatili ng isang ligtas na sistema ng pagbabahagi ng code.

Ang mas malaki at mas kumplikadong isang application ay, mas madali itong mahawahan sa pamamagitan ng pagdaragdag ng ilang mga linya ng code sa ilang hindi malinaw na lugar. Halos walang sinuman ang gumugugol ng oras upang suriin ang bawat linya ng code sa isang application, sapagkat sa pangkalahatan ipinapalagay nila na ang code ay mapagkakatiwalaan.

Ang isang lubos na may kasanayang programmer ay karaniwang maaaring gumawa ng isang mahusay na trabaho ng obfuscating ang nakakahamak na kalikasan ng code, at isa lamang na lubos na may kasanayang programmer ay aalamin kung ano ang layunin nito ... kung ang nakakahamak na fragment ng code ay nakita.

2. Hindi mo pag-aari ito

Ito ay talagang isang kumbinasyon ng mga problema. Ang una ay maaari kang mapailalim sa iba't ibang mga term ng paglilisensya. Kapag mayroon kang maraming mga fragment ng code na ginamit sa isang solong web page o application, maaari kang tunay na napapailalim sa maraming magkakaibang mga tuntunin at kundisyon sa paglilisensya, at ang ilan sa mga ito ay maaaring magkasalungat sa isa't isa.

Siyempre bahagya kahit sino abala upang basahin ang nakakapagod listahan ng mga tuntunin at kundisyon, ngunit na maaaring potensyal na isang pagkakamali. Sa partikular na pagkakamali kung ang ilang kundisyon sa kasunduan sa lisensya ay nagdulot sa iyo na lumalabag sa ilang batas sa iyong sariling bansa o sa bansa kung saan matatagpuan ang iyong server.

Ang iba pang isyu ay kung hindi ka nagmamay-ari ng code, wala kang kontrol dito, at maaaring hindi mo kinakailangang maunawaan ang lahat ng ginagawa nito o kung paano ito gumagana. Nangangahulugan iyon kung ang isang tao ay gumawa ng ilang pagbabago sa code, maaari kang makaalis sa pagbabago na iyon, lalo na kung matapat kang nag-install ng mga pag-update, pag-patch, pag-upgrade at mga bagong bersyon sa lalong madaling mailabas ang mga ito bilang matatag, o kung ganap kang umaasa sa paghahatid ng nilalaman mga network para sa iyong mga third party na solusyon.

3. Madalas kang makakuha ng higit pa sa kailangan mo

Karaniwang gumagana ang code ng third party upang gawin ang trabahong nais mo, ngunit kung minsan naglalaman ito ng lahat ng mga uri ng mga karagdagang tampok na hindi mo kailangan at marahil ay hindi mo kailanman gagamitin. Sa ilang mga kaso hindi mo madaling alisin ang mga sobrang tampok na iyon o kahit na sa lahat. Maaari mo ring kompromiso. Ang tampok ay maaaring gumawa ng isang bagay na malapit sa iyong balak, ngunit hindi eksakto kung ano ang balak mo. Nagbebenta ka ng kagila-gilalas para sa kapakanan ng pagkakaroon ng mas kaunting trabaho na gagawin, at hindi iyon palaging isang magandang kalakal.

4. Maramihang mga antas ng pagtitiwala ng third party ay maaaring humantong sa totoong problema

Maraming mga proyekto ng open source ang gumagamit ng parehong mga fragment ng code ng third party sa iba't ibang paraan upang makabuo ng kanilang software. Karamihan sa mga oras na iyon ay hindi isang masamang bagay, ngunit maaari itong humantong sa kaguluhan. Sa mga araw na ito, maraming mga developer ay hindi kahit na mai-install ang mga fragment na ginagamit nila, ngunit hilahin ang mga ito sa oras ng pagpapatakbo mula sa mga network ng paghahatid ng nilalaman ayon sa pangangailangan. Ang panganib na ito ay nakalarawan nang kamangha-mangha ng Left-Pad Insidente ng 2016.

Ang bawat kadena ay kasing lakas lamang ng pinakamahina nitong link. Ang pagkakadena na ito ng mga dependency ay nangangahulugan na kung ang anumang link kahit saan sa kahabaan ng chain ay nasira o nakompromiso, ang buong kadena ay nasa peligro ng madepektong paggawa. Sa ilang mga sitwasyon na maaaring maging medyo magastos. Walang sinuman ang maghinala sa kapangyarihan na nakapaloob sa 11 mga linya ng code na nilalaman sa benign maliit na pagpapaandar na tinatawag na Left-Pad, ngunit kapag nabigo ang partikular na link ng kadena, nagdulot ito ng maraming malalaking website. Ang pangunahing bahagi nito ay ang karamihan sa mga tao na gumagamit ng Left-Pad ay walang ideya na ginagamit nila ito, kung ano ang ginawa nito, o kung paano ayusin ang problema. Tulad ng nakasaad sa item 2, kung hindi mo pag-aari ito, maaaring hindi mo kinakailangang maunawaan ito.

Ang Left-Pad ay isang napaka-simpleng pagpapaandar na nagdaragdag lamang ng ilang mga puwang sa kaliwang bahagi ng isang linya upang matiyak na ang linya ay ang tamang haba. Ngayon ang isyu dito ay ang anumang karampatang programmer na maaaring madaling makaya ang pag-andar na iyon. Walang ganap na pangangailangan para sa anumang aplikasyon na maging nakasalalay sa pag-andar ng third party na ito, at libu-libong mga website ang gumagamit ng software na kasama dito, kabilang ang Netflix, Facebook, at Reddit. Ito ay isang stroke lamang ng swerte na sa kasong ito ito ay isang napaka-simpleng pagpapaandar na sinira ang kadena, at hindi ilang talagang kumplikadong pag-andar na mayroong sariling kadena ng mga dependency.

Sa kahulihan ay kung maitatayo mo ito sa iyong sarili, marahil ay dapat!

Sa huli ang desisyon kung gagamit ng mga third party code block sa iyong proyekto ay bumaba sa isang serye ng mga kumplikadong desisyon na hindi dapat gaanong gaanong bahala. Ang mga salik na kailangan mong isaalang-alang ay ang seguridad, legalidad, gastos, oras at katatagan.

Upang gawing mas simple ang proseso ng desisyon, malamang na makakatulong ang sumusunod na kundisyon ng pagsubok.

KUNG alinman sa mga salik na ito ay totoo:

  • ang pagpapaandar na gusto mo ay simple
  • ikaw (o ang iyong koponan) ay may kakayahang lumikha ng pagpapaandar
  • maraming oras upang likhain ang pagpapaandar
  • ang iyong aplikasyon ay nangangailangan ng mahusay na seguridad
  • mayroon kang mga alalahanin tungkol sa mga potensyal na ligal na problema na nauugnay sa paglilisensya ng third party
  • mahalaga na ang iyong aplikasyon ay hindi dapat mabigo

TAPOS dapat mong itayo ang iyong sarili,

ELSE maaaring mas mahusay ito na gamitin ang mga pag-andar ng third party, sa kondisyon na alam mo ang mga potensyal na problema at mayroon kang isang diskarte sa lugar para sa kung ano ang gagawin mo kung lumitaw ang mga problemang iyon.

imahe ng header sa kabutihang loob ng Stephanie Tucker

Bogdan Rancea

Si Bogdan ay isang founding member ng Inspired Mag, na naipon ang halos 6 na taong karanasan sa panahong ito. Sa kanyang bakanteng oras gusto niyang mag-aral ng klasikal na musika at galugarin ang visual arts. Medyo nahuhumaling rin siya sa mga fixies. Nagmamay-ari na siya ng 5.