Coretan kod Java yang paling banyak digunakan pada Stack Overflow mengandungi ralat

Java

Kajian yang diterbitkan di Oktober 2018 dalam majalah Kejuruteraan Perisian Empirikal oleh ahli akademik Sebastian Baltes dan Stephan Diehl mendedahkan bahawa coretan kod yang disediakan di jawapan kepada soalan dari Stack Overflow pada bulan September 2010 oleh Andreas Lundblad, Pemaju Java di Palantir, Ini adalah coretan kod Java yang paling banyak digunakan di platform komuniti.

Walau bagaimanapun, dalam catatan minggu lalu, Lundblad menjelaskan bahawa kodnya salah dan ia salah menukar bilangan bait dalam format yang boleh dibaca oleh manusia. Kod yang dimaksud telah mengumpulkan lebih dari seribu cadangan dan juga telah dimasukkan dalam banyak projek dan terdapat di repositori di GitHub kira-kira 7 ribu kali.

Perlu diperhatikan bahawa ralat tidak dijumpai oleh pengguna yang menggunakan kod ini dalam projek mereka, tetapi oleh pengarang asal tip.

Kod yang dipertimbangkan menukar ukuran bait dalam bentuk yang dapat dibaca, misalnya 110592 ditukar menjadi "110.6 kB" atau "108.0 KiB". Kod tersebut diusulkan sebagai varian nasihat yang dicadangkan sebelumnya, dioptimumkan menggunakan logaritma, di mana nilainya ditentukan dengan membagi nilai awal dalam satu kitaran dengan «10 18, 10 15, 10 12, 10 19, 10 6, 10 3 dan 10 0 ″ , walaupun pembahagi lebih besar daripada nilai asal dalam bait.

Kerana pengiraan yang tidak tepat dalam versi yang dioptimumkan (limpahan nilai panjang), hasil pemprosesan bilangan yang sangat besar (exabyte) tidak sesuai dengan kenyataan.

Lundblad menjelaskan bahawa kod tersebut mengandungi ralat penukaran sepele yang hanya menghasilkan anggaran ukuran fail yang sedikit tidak tepat. Yang dikatakan, dianggarkan akan jauh lebih buruk daripada itu.

Kod tersebut mungkin mengandungi kerentanan keselamatan, sebagai contoh. Sekiranya demikian, mungkin memerlukan waktu berbulan-bulan atau bertahun-tahun untuk memperbaiki semua aplikasi yang rentan, sehingga menyebabkan pengguna terkena serangan.

Penulis nasihat itu juga berusaha menarik perhatian terhadap masalah tersebut untuk menggunakan contoh tanpa merujuk kepada sumber dan tanpa menentukan lesen.

“Dalam sesi kolaborasi yang melibatkan beberapa pengkod manusia, kami secara manual menilai setiap sekeping kod untuk kelemahan keselamatan menurut arahan CWE (Common Weakness Enumeration).

Dari 72,483 coretan kod yang diimbas yang digunakan dalam sekurang-kurangnya satu projek yang dihoskan oleh GitHub, kami menemui sejumlah 69 coretan kod yang terdedah diklasifikasikan menjadi 29 jenis. Banyak coretan kod yang dikaji belum diperbaiki, "kata para penyelidik dalam laporan mereka.

69 coretan kod yang terdedah dijumpai di Stack Overflow digunakan semula dalam sejumlah 2859 projek GitHub. Untuk meningkatkan kualiti coretan kod bersama di Stack Overflow, mereka telah mengembangkan pelanjutan penyemak imbas yang membolehkan pengguna Stack Overflow mencari kerentanan dalam coretan ketika mereka memuat turunnya ke platform.

Namun, di sebalik kehendak penyelidik, pembangun masih menyalin kod Stack Overflow ke dalam projek mereka tanpa melakukan analisis.

Ashkan Sami, Profesor Madya IT, kejuruteraan dan teknologi maklumat di Universiti Shiraz di Iran, mengatakan bahawa

"Penyelidikan ini adalah usaha untuk memeriksa bagaimana kod yang salah dimigrasikan dari Stack Overflow ke GitHub. Pada dasarnya apa yang kami coba tunjukkan adalah dengan menggunakan kod Stack Overflow tanpa memeriksanya dengan teliti dapat menyebabkan kerentanan aplikasi, ”kata Sami. Kajian ini juga merujuk kepada artikel akademik dari tahun 2017.

Menurut artikel ini, 1161 potongan kode tidak selamat yang diposting di Stack Overflow digunakan dalam 1.3 juta aplikasi Android yang tersedia di Google Play.

Sebagai tambahan kepada kajian sebelumnya, 46% pemaju yang menggunakan kod StackOverflow tanpa menyatakan pengarang, 75% tidak mengetahui bahawa kod itu dilesenkan di bawah CC BY-SA dan 67% tidak mengetahui bahawa ini menunjukkan keperluan atribusi.

Menurut data dari kajian lain, penggunaan kod sampel tidak hanya dikaitkan dengan risiko bug dalam kod, tetapi juga dengan kerentanan.

Sebagai contoh, setelah menganalisis 72483 sampel kod C ++ di StackOverflow, para penyelidik mengenal pasti kelemahan serius dalam 69 sampel (yang 0.09%), termasuk dalam senarai cadangan yang paling popular.

Fuente: https://programming.guide


Tinggalkan komen anda

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

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.