Bahaya Ketergantungan Kod Pihak Ketiga

Jika anda melanggan perkhidmatan daripada pautan di halaman ini, Reeves and Sons Limited mungkin mendapat komisen. Lihat kami pernyataan etika.

Terdapat beberapa perkara yang sangat baik mengenai cara perisian berfungsi di Internet. Sebagai permulaan, terdapat rangkaian besar tidak rasmi berjuta-juta orang yang menyumbang kepada repositori serpihan kod yang besar yang membantu mengaktifkan banyak lagi jutaan aplikasi.

Setiap kali anda melihat sedikit pautan di bahagian bawah laman web yang bertuliskan "Dikuasakan oleh So-And-So", anda menyaksikan kesan kolaboratif ini dalam tindakan.

Dan sudah tentu sebab utama orang suka perkongsian dan kerjasama pihak ketiga ini adalah kerana ia boleh menjimatkan banyak jam dalam masa pembangunan, kerana anda tidak mencipta semula sesuatu yang sudah wujud.

Tetapi walaupun dengan faedah hebat sistem perkongsian kod pihak ketiga ini, terdapat banyak sebab mengapa anda mungkin ingin mengelak daripada menggunakan serpihan kod tersebut, seperti yang akan kita lihatโ€ฆ

1. Potensi risiko keselamatan

Oleh kerana hampir semua kod yang mendorong apa-apa di Web adalah sumber terbuka, itu adalah pertimbangan yang wajar bahawa jika terdapat muatan jahat dalam aplikasi tertentu, ia akan cepat ditemukan oleh komuniti pemaju dan cepat dibetulkan.

Tetapi banyak fragmen kod ini dimuat beratus-ratus atau bahkan ribuan kali sehari, dan tidak setiap pasukan pentadbiran melakukan tugas yang baik untuk mengekalkan sistem perkongsian kod yang selamat.

Semakin besar dan kompleksnya aplikasi, semakin mudah menjangkiti dengan menambahkan beberapa baris kode di beberapa tempat yang tidak jelas. Hampir tidak ada yang meluangkan masa untuk meneliti setiap baris kod dalam aplikasi, kerana mereka umumnya menganggap kod itu dapat dipercaya.

Seorang pengaturcara yang berkemahiran tinggi biasanya dapat melakukan tugas yang baik untuk menyamarkan sifat kod yang berniat jahat, dan hanya seorang pengaturcara lain yang berkemahiran tinggi akan mengetahui tujuannyaโ€ฆ jika pecahan kod jahat dikesan.

2. Anda tidak memilikinya

Ini sebenarnya adalah gabungan masalah. Yang pertama adalah bahawa anda mungkin dikenakan pelbagai syarat pelesenan. Apabila anda mempunyai beberapa fragmen kod yang digunakan dalam satu laman web atau aplikasi, anda sebenarnya mungkin dikenakan beberapa terma dan syarat pelesenan yang berbeza, dan beberapa di antaranya sebenarnya bertentangan antara satu sama lain.

Sudah tentu hampir tidak ada sesiapa yang peduli untuk membaca senarai terma dan syarat yang membosankan ini, tetapi itu boleh menjadi satu kesilapan.

Khususnya adalah satu kesilapan jika beberapa syarat dalam perjanjian lesen menyebabkan anda melanggar beberapa undang-undang di negara asal anda atau di negara tempat pelayan anda berada.

Isu lain ialah jika anda tidak memiliki kod, anda tidak mempunyai kawalan ke atasnya dan anda mungkin tidak semestinya memahami semua yang ia lakukan atau cara ia berfungsi.

Ini bermakna jika seseorang membuat sedikit perubahan pada kod, anda mungkin terperangkap dengan perubahan itu, terutamanya jika anda memasang kemas kini, tampalan, peningkatan dan versi baharu dengan setia sebaik sahaja ia dikeluarkan sebagai stabil atau jika anda bergantung sepenuhnya pada penghantaran kandungan rangkaian untuk penyelesaian pihak ketiga anda.

3. Anda sering mendapat lebih banyak daripada yang anda perlukan

Kod pihak ketiga biasanya berfungsi untuk melakukan kerja yang anda mahukan, tetapi kadangkala ia mengandungi semua jenis ciri tambahan yang anda tidak perlukan dan mungkin tidak akan pernah digunakan.

Dalam sesetengah kes, anda tidak boleh mengalih keluar ciri tambahan tersebut dengan mudah atau malah sama sekali. Anda juga mungkin perlu berkompromi. Ciri ini mungkin melakukan sesuatu yang sangat hampir dengan apa yang anda maksudkan, tetapi bukan apa yang anda maksudkan. Anda berdagang kehebatan demi mengurangkan kerja yang perlu dilakukan, dan itu bukan selalunya merupakan perdagangan yang baik.

4. Pelbagai tahap kebergantungan pihak ketiga boleh menyebabkan masalah sebenar

Banyak projek sumber terbuka menggunakan serpihan kod pihak ketiga yang sama dengan cara yang berbeza untuk menghasilkan perisian mereka. Selalunya itu bukan perkara yang buruk, tetapi ia boleh membawa kepada masalah.

Hari ini, ramai pembangun tidak memasang serpihan yang mereka gunakan, tetapi menariknya pada masa berjalan daripada rangkaian penghantaran kandungan atas permintaan. Bahaya ini digambarkan dengan hebat oleh Insiden Left-Pad 2016.

Setiap rantai hanya sekuat mata rantainya yang paling lemah. Rantaian kebergantungan ini bermakna jika mana-mana pautan di mana-mana di sepanjang rantai itu terputus atau terjejas, keseluruhan rantai berisiko rosak. Dalam beberapa situasi yang mungkin agak mahal.

Tiada siapa yang akan mengesyaki kuasa yang terkandung dalam 11 baris kod yang terkandung dalam fungsi kecil yang jinak yang dipanggil Left-Pad, tetapi apabila pautan rantai tertentu itu gagal, ia menyebabkan banyak laman web besar yang memekik terhenti.

Sebahagian besar daripadanya ialah kebanyakan orang yang menggunakan Left-Pad tidak tahu bahawa mereka menggunakannya, apa yang dilakukannya atau cara menyelesaikan masalah itu. Seperti yang dinyatakan di item 2, jika anda tidak memilikinya, anda mungkin tidak semestinya memahaminya.

Left-Pad ialah fungsi yang sangat mudah yang hanya menambah beberapa ruang di sebelah kiri garisan untuk memastikan garisan adalah panjang yang betul. Sekarang isu di sini ialah mana-mana pengaturcara yang cekap boleh meniru fungsi itu dengan mudah.

Tidak ada keperluan untuk sebarang aplikasi bergantung pada fungsi pihak ketiga ini, namun beribu-ribu tapak web menggunakan perisian yang menyertakannya, termasuk Netflix, Facebook dan Reddit. Ia hanyalah satu nasib baik bahawa dalam kes ini ia adalah fungsi yang sangat mudah yang memutuskan rantaian, dan bukan beberapa fungsi yang sangat rumit yang mempunyai rantaian kebergantungan sendiri.

Intinya adalah jika anda boleh membinanya sendiri, anda mungkin harus!

Pada akhirnya keputusan mengenai sama ada akan menggunakan blok kod pihak ketiga dalam projek anda datang kepada serangkaian keputusan rumit yang tidak boleh dipandang ringan. Faktor yang perlu anda pertimbangkan adalah keselamatan, kesahan, kos, masa dan kestabilan.

Untuk menjadikan proses keputusan lebih mudah, keadaan ujian berikut mungkin akan membantu.

JIKA ada faktor ini benar:

  • fungsi yang anda mahukan adalah mudah
  • anda (atau pasukan anda) mempunyai kemampuan untuk membuat fungsi tersebut
  • ada banyak masa untuk membuat fungsi
  • aplikasi anda memerlukan keselamatan yang baik
  • anda mempunyai kebimbangan mengenai kemungkinan masalah undang-undang yang berkaitan dengan pelesenan pihak ketiga
  • adalah mustahak agar aplikasi anda tidak pernah gagal

KEMUDIAN anda harus membinanya sendiri,

TETAPI mungkin lebih efisien untuk menggunakan fungsi pihak ketiga, dengan syarat anda menyedari kemungkinan masalah dan anda mempunyai strategi untuk melakukan apa yang akan anda lakukan sekiranya masalah tersebut timbul.

Bogdan Rancea

Bogdan adalah ahli pengasas Inspired Mag, yang telah mengumpulkan hampir 6 tahun pengalaman dalam tempoh ini. Pada masa lapang dia suka belajar muzik klasik dan mendalami seni visual. Dia juga taksub dengan fixies juga. Dia sudah memiliki 5 orang.

Komen-komen Responses 0

Sila tinggalkan balasan anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda *

Kedudukan *

Laman web ini menggunakan Akismet untuk mengurangkan spam. Ketahui bagaimana data komen anda diproses.