Stack Overflow'da en çok kullanılan Java kod parçacığı bir hata içeriyor

Java

Yayınlanan bir çalışma Ekim 2018 Empirical Software Engineering dergisinde akademisyenler Sebastian Baltes ve Stephan Diehl tarafından bir kod parçasının sağlandığını ortaya çıkardı gelen bir soruya cevap Andreas Lundblad tarafından Eylül 2010'da Stack Overflow, Palantir'de Java geliştiricisi, topluluk platformunda en yaygın kullanılan Java kod parçacığıdır.

Sin ambargo, geçen hafta bir gönderide, Lundblad, kodun hatalı olduğunu ve bayt sayısını yanlış bir şekilde dönüştürdüğünü açıkladı. insan tarafından okunabilir formatlarda. Söz konusu kod binden fazla öneri biriktirmiş ve birçok projeye de dahil edilmiştir ve yaklaşık 7 bin kez GitHub'da depolarda bulunmaktadır.

Dikkate değer hata kullanıcılar tarafından bulunamadı bu kodu projelerinde kullananlar, ama ipucunun orijinal yazarı tarafından.

Değerlendirilen kod, bayt boyutunu okunabilir biçimde dönüştürdü, örneğin 110592, "110.6 kB" veya "108.0 KiB". Kod, daha önce önerilen tavsiyenin bir varyantı olarak önerildi, logaritmalar kullanılarak optimize edildi; burada değer, bir döngüdeki başlangıç ​​değerinin "10 18, 10 15, 10 12, 10 19, 10 6, 10 3 ve 10 0 ″ , bölen bayt cinsinden orijinal değerden büyük olsa bile.

Optimize edilmiş versiyondaki yanlış hesaplamalar nedeniyle (uzun değer taşması), çok büyük sayıların işlenmesinin sonucu (eksabayt) gerçeğe karşılık gelmedi.

Lundblad, kodun önemsiz bir dönüştürme hatası içerdiğini ve bunun yalnızca biraz yanlış dosya boyutu tahminleriyle sonuçlandığını açıkladı. Bununla birlikte, bundan çok daha kötü olacağı tahmin ediliyor.

Kod bir güvenlik açığı içeriyor olabilir, Örneğin. Durum böyleyse, tüm savunmasız uygulamaları onarmak aylar veya yıllar alır ve kullanıcıları saldırılara maruz bırakırdı.

Tavsiyenin yazarı da soruna dikkat çekmeye çalıştı kaynak göstermeden ve bir lisans belirtmeden örnekleri kullanmak.

“Birden fazla insan kodlayıcı içeren ortak çalışma oturumlarında, her kod parçasını CWE (Common Weakness Enumeration) talimatlarına göre güvenlik açıkları açısından manuel olarak değerlendirdik.

GitHub tarafından barındırılan en az bir projede kullanılan 72,483 taranmış kod parçacığından, 69 türe ayrılmış toplam 29 savunmasız kod parçacığı bulduk. Araştırmacılar raporlarında, incelenen kod parçalarının çoğu henüz düzeltilmedi "dedi.

69 savunmasız kod parçacığı Stack Overflow'da bulundu toplam 2859 GitHub projesinde yeniden kullanıldı. Stack Overflow'da paylaşılan kod parçacıklarının kalitesini artırmak için, Stack Overflow kullanıcılarının bunları platforma indirirken parçacıklardaki güvenlik açıklarını aramasına olanak tanıyan bir tarayıcı uzantısı geliştirdiler.

Ancak, araştırmacıların uyarılarına rağmen, geliştiriciler yine de Stack Overflow kodunu bir analiz yapmadan projelerine kopyalıyorlar.

Doçent Doktor Ashkan Sami, mühendislik ve bilgi teknolojisi İran'daki Şiraz Üniversitesi'nde,

“Araştırma, hatalı kodun Stack Overflow'dan GitHub'a nasıl taşındığını inceleme girişimiydi. Sami, temelde göstermeye çalıştığımız şey, Stack Overflow kodunu yakından bakmadan kullanmanın uygulama güvenlik açıklarına yol açabileceğidir ”dedi. Çalışma ayrıca 2017 tarihli bir akademik makaleye de atıfta bulunuyor.

Bu makaleye göre, Stack Overflow'da yayınlanan güvenli olmayan 1161 kod parçacığı, Google Play'de bulunan 1.3 milyon Android uygulamasında kullanıldı.

Önceki bir araştırmaya ek olarak, StackOverflow kodunu yazarı belirtmeden kullanan geliştiricilerin% 46'sı,% 75'i kodun CC BY-SA kapsamında lisanslandığını bilmiyordu ve% 67'si bunun atıf yapma ihtiyacı anlamına geldiğini bilmiyordu.

Diğer çalışmalardan elde edilen verilere göre, örnek kodun kullanılması yalnızca koddaki hata riskiyle değil, aynı zamanda güvenlik açıklarıyla da ilişkilidir.

Örneğin, StackOverflow'da 72483 C ++ kod örneğini analiz ettikten sonra araştırmacılar, en popüler öneriler listesinde yer alan 69 örnekte (% 0.09) ciddi güvenlik açıkları belirlediler.

kaynak: https://programming.guide


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.