Det mest använda Java-kodavsnittet i Stack Overflow innehåller ett fel

java

En studie publicerad i Oktober 2018 i magasinet Empirical Software Engineering av akademikerna Sebastian Baltes och Stephan Diehl avslöjade att ett kodavsnitt tillhandahålls i svar på en fråga om Stack Overflow i september 2010 av Andreas Lundblad, Java-utvecklare på Palantir, är det mest använda Java-kodavsnittet på community-plattformen.

Sin embargo, I ett inlägg förra veckan, Lundblad förklarade att koden var felaktig och felaktigt konverterade antalet byte i läsbara format. Koden i fråga har samlat på sig över tusen rekommendationer och har också inkluderats i många projekt och hittats i repositories på GitHub cirka 7 tusen gånger.

Det är anmärkningsvärt att felet hittades inte av användarna som använde den här koden i sina projekt, men av den ursprungliga författaren av rådet.

Den övervägda koden konverterade bytestorleken till läsbar form, till exempel 110592 konverterad till "110.6 kB" eller "108.0 KiB". Koden föreslogs som en variant av tidigare föreslagna råd, optimerade med logaritmer, där värdet bestämdes genom att dela det initiala värdet i en cykel med "10 18 , 10 15 , 10 12 , 10 19 , 10 6 , 10 3 och 10 0″ , upp medan divisorn är större än det ursprungliga värdet i byte.

På grund av felaktiga beräkningar i den optimerade versionen (långt värdespill), resultatet av att bearbeta mycket stora antal (exabyte) motsvarade inte verkligheten.

Lundblad förklarade att koden innehöll ett trivialt konverteringsfel som bara resulterade i något felaktiga uppskattningar av filstorleken. Som sagt, man uppskattar att det skulle ha varit mycket värre än så.

Koden kan ha innehållit en säkerhetsrisk, Till exempel. Om så var fallet skulle det ha tagit månader eller år att fixa alla sårbara appar, vilket utsätter användare för attacker.

Författaren till råden försökte också uppmärksamma problemet att använda exempel utan referens till källan och utan att ange en licens.

"I samarbetssessioner som involverade flera mänskliga kodare, utvärderade vi manuellt varje kodavsnitt för säkerhetsbrister enligt CWE-riktlinjer (Common Weakness Enumeration).

Av 72,483 69 undersökta kodsnuttar som används i minst ett projekt på GitHub hittade vi totalt 29 sårbara kodavsnitt kategoriserade i XNUMX typer. Många av de studerade kodsnuttarna är fortfarande inte fixade", sa forskarna i sin rapport.

De 69 sårbara kodavsnitten hittas på Stack Overflow återanvändes i totalt 2859 GitHub-projekt. För att förbättra kvaliteten på delade kodavsnitt på Stack Overflow har de utvecklat ett webbläsartillägg som gör att Stack Overflow-användare kan skanna fragmenten efter sårbarheter när de laddar ner dem till plattformen.

Men trots forskarnas varningar kopierar utvecklare fortfarande Stack Overflow-kod till sina projekt utan analys.

Ashkan Sami, docent i IT, teknik och informationsteknik vid University of Shiraz i Iran, sa det

"Undersökningen var ett försök att undersöka hur felaktig kod migrerar från Stack Overflow till GitHub. I grund och botten, vad vi har försökt visa är att att använda Stack Overflow-kod utan att titta närmare på det kan leda till sårbarheter i applikationer, säger Sami. Studien hänvisar också till en akademisk uppsats från 2017.

Enligt den här artikeln användes 1161 1.3 osäkra kodavsnitt som lagts upp på Stack Overflow i XNUMX miljoner Android-appar tillgängliga på Google Play.

Förutom en tidigare studie visste 46 % av utvecklarna som använde StackOverflow-koden utan att ange författaren, 75 % visste inte att koden är licensierad under CC BY-SA och 67 % visste inte att detta innebär ett behov av tillskrivning.

I enlighet med data från andra studier är användningen av exempelkoden inte bara förknippad med risken för buggar i koden, utan även sårbarheter.

Till exempel, efter att ha analyserat 72483 C++-kodexempel på StackOverflow, identifierade forskare allvarliga sårbarheter i 69 exempel (det är 0.09 %), inkluderade i listan över de mest populära rekommendationerna.

Fuente: https://programming.guide


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.