Stack Overflow-da eng ko'p ishlatiladigan Java kod parchasi xatolikni o'z ichiga oladi

Java

Yilda nashr etilgan tadqiqot 2018 yil oktyabr "Empirik dastur muhandisligi" jurnalida akademiklar Sebastian Baltes va Stefan Diehl tomonidan kod parchasi taqdim etilganligini aniqladi degan savolga javob Stack Overflow 2010 yil sentyabr oyida Andreas Lundblad tomonidan, Palantir-da Java dasturchisi, bu jamoat platformasida eng ko'p ishlatiladigan Java kod parchasi.

Biroq, o'tgan hafta postda, Lundblad kod noto'g'ri ekanligini va baytlar sonini noto'g'ri o'zgartirganligini tushuntirdi inson tomonidan o'qiladigan formatlarda. Ushbu kod mingdan ziyod tavsiyalar to'plagan va ko'plab loyihalarga kiritilgan va GitHub-dagi omborlarda taxminan 7 ming marta mavjud.

Shunisi e'tiborga loyiqki xato foydalanuvchilar tomonidan topilmadi ushbu kodni o'z loyihalarida kim ishlatgan, lekin maslahatning asl muallifi tomonidan.

Ko'rib chiqilgan kod bayt hajmini o'qiladigan shaklga o'tkazdi, masalan 110592 ga aylantirildi "110.6 kB" yoki "108.0 KiB". Kod logaritmalar yordamida optimallashtirilgan, ilgari tavsiya etilgan tavsiyalarning bir varianti sifatida taklif qilingan bo'lib, unda qiymat tsikldagi dastlabki qiymatni «10 18, 10 15, 10 12, 10 19, 10 6, 10 3 va 10 0 ″ , bo'linuvchi baytdagi asl qiymatdan kattaroq bo'lsa ham.

Optimallashtirilgan versiyada noto'g'ri hisob-kitoblar tufayli (uzoq qiymatdan oshib ketish), juda katta sonlarni qayta ishlash natijasi (ekzabayt) haqiqatga mos kelmadi.

Lundblad kodda ahamiyatsiz konversiya xatosi borligini tushuntirdi, bu faqat fayl hajmini biroz noto'g'riligini keltirib chiqardi. Ya'ni, bundan ham yomonroq bo'lishi mumkin edi.

Kod xavfsizlikning zaifligini o'z ichiga olishi mumkin edi, masalan. Agar shunday bo'lgan bo'lsa, foydalanuvchilarning hujumlariga duchor bo'lgan holda, barcha zaif dasturlarni tiklash uchun bir necha oy yoki yillar kerak bo'lar edi.

Maslahat muallifi ham muammoga e'tiborni qaratishga harakat qildi manbalarni ko'rsatmasdan va litsenziyani ko'rsatmasdan misollardan foydalanish.

"Bir nechta inson kodlarini o'z ichiga olgan birgalikdagi mashg'ulotlarda biz CWE (Common Weakness Enumeration) ko'rsatmalariga binoan xavfsizlik zaifligi uchun har bir kodni qo'lda baholadik.

Kamida bitta GitHub tomonidan boshqariladigan loyihada foydalanilgan 72,483 ta skaner qilingan kod parchalari orasida biz 69 turga tasniflangan 29 ta himoyasiz kod parchalarini topdik. Ko'pgina o'rganilgan kod parchalari hali tuzatilmagan ", - deyiladi tadqiqotchilar o'z ma'ruzalarida.

69 ta himoyasiz kod parchalari Stack Overflow-da topilgan jami 2859 GitHub loyihasida qayta ishlatilgan. Stack Overflow-dagi umumiy kod parchalari sifatini oshirish uchun ular brauzer kengaytmasini ishlab chiqdilar, bu esa Stack Overflow foydalanuvchilariga platformaga yuklab olayotganda parchalardagi kamchiliklarni qidirishga imkon beradi.

Biroq, tadqiqotchilarning ogohlantirishlariga qaramay, ishlab chiquvchilar tahlil qilishsiz Stack Overflow kodini o'z loyihalariga nusxalashmoqda.

Ashkan Sami, IT dotsenti, muhandislik va axborot texnologiyalari Eronning Sheroz universitetida shunday dedi

«Tadqiqot Stack Overflow-dan GitHub-ga qanday qilib noto'g'ri kod ko'chirilishini tekshirishga urinish edi. Asosan biz ko'rsatmoqchi bo'lgan narsa shundaki, Stack Overflow kodini sinchkovlik bilan ko'rib chiqmasdan foydalanish dasturning zaif tomonlariga olib kelishi mumkin », - dedi Sami. Tadqiqot shuningdek, 2017 yildagi akademik maqolani nazarda tutadi.

Ushbu maqolaga ko'ra, Google Play-da mavjud bo'lgan 1161 million Android dasturida Stack Overflow-da joylashtirilgan 1.3 xavfli kod parchalari ishlatilgan.

Avvalgi tadqiqotga qo'shimcha ravishda, StackOverflow kodini muallifini ko'rsatmasdan foydalangan dasturchilarning 46%, 75% kod CC BY-SA bo'yicha litsenziyalanganligini bilmagan va 67% bu atribut zarurligini anglatishini bilmagan.

Boshqa tadqiqotlar ma'lumotlariga ko'ra, namunaviy koddan foydalanish nafaqat koddagi xatolar xavfi, balki zaifliklar bilan ham bog'liq.

Masalan, StackOverflow-da 72483 C ++ kod namunalarini tahlil qilgandan so'ng, tadqiqotchilar eng mashhur tavsiyalar ro'yxatiga kiritilgan 69 ta namunada (0.09%) jiddiy zaifliklarni aniqladilar.

Manba: https://programming.guide


Maqolaning mazmuni bizning printsiplarimizga rioya qiladi muharrirlik etikasi. Xato haqida xabar berish uchun bosing bu erda.

Birinchi bo'lib izohlang

Fikringizni qoldiring

Sizning email manzilingiz chop qilinmaydi.

*

*

  1. Ma'lumotlar uchun javobgardir: Migel Anxel Gaton
  2. Ma'lumotlarning maqsadi: SPAMni boshqarish, izohlarni boshqarish.
  3. Qonuniylashtirish: Sizning roziligingiz
  4. Ma'lumotlar haqida ma'lumot: qonuniy majburiyatlar bundan mustasno, ma'lumotlar uchinchi shaxslarga etkazilmaydi.
  5. Ma'lumotlarni saqlash: Occentus Networks (EU) tomonidan joylashtirilgan ma'lumotlar bazasi
  6. Huquqlar: istalgan vaqtda siz ma'lumotlaringizni cheklashingiz, tiklashingiz va o'chirishingiz mumkin.