Fragmenti më i përdorur i kodit Java në Stack Overflow përmban një gabim

Java

Një studim i botuar në Tetor 2018 në revistën Empirical Software Engineering revista nga akademikët Sebastian Baltes dhe Stephan Diehl zbuloi se një copë kodi dhënë në përgjigje për një pyetje nga Stack Overflow në Shtator 2010 nga Andreas Lundblad, Zhvillues Java në Palantir, Nishtë copa më e përdorur gjerësisht e kodit Java në platformën e komunitetit.

Megjithatë, në një postim javën e kaluar, Lundblad shpjegoi se kodi ishte i gabuar dhe se po konvertonte gabimisht numrin e bajteve në formate të lexueshme nga njerëzit. Kodi në fjalë ka grumbulluar më shumë se një mijë rekomandime dhe gjithashtu është përfshirë në shumë projekte dhe është në depot e GitHub afërsisht 7 mijë herë.

Vlen të përmendet se gabimi nuk u gjet nga përdoruesit të cilët e përdorën këtë kod në projektet e tyre, por nga autori origjinal i bakshishit.

Kodi i konsideruar konvertoi madhësinë e bajtit në formë të lexueshme, për shembull 110592 të konvertuar në "110.6 kB" ose "108.0 KB". Kodi u propozua si një variant i këshillës së propozuar më parë, e optimizuar duke përdorur logaritme, në të cilën vlera u përcaktua duke ndarë vlerën fillestare në një cikël me «10 18, 10 15, 10 12, 10 19, 10 6, 10 3 dhe 10 0 , edhe pse pjesëtuesi është më i madh se vlera origjinale në bajte.

Për shkak të llogaritjeve të pasakta në versionin e optimizuar (tejmbushja e vlerës së gjatë), rezultati i përpunimit të numrave shumë të mëdhenj (exabytes) nuk i përgjigjeshin realitetit.

Lundblad shpjegoi se kodi përmbante një gabim të parëndësishëm të konvertimit që rezultoi vetëm në vlerësime pak të pasakta të madhësisë së skedarit. Thënë kjo, vlerësohet se do të kishte qenë shumë më keq se kaq.

Kodi mund të përmbajë një dobësi të sigurisë, për shembull. Nëse do të ishte kështu, do të duheshin muaj ose vite për të riparuar të gjitha aplikacionet e prekshme, duke i ekspozuar përdoruesit ndaj sulmeve.

Autori i këshillës gjithashtu u përpoq të tërhiqte vëmendjen ndaj problemit të përdorë shembuj pa iu referuar burimit dhe pa specifikuar një licencë.

“Në seancat bashkëpunuese që përfshinin kodues të shumtë njerëzorë, ne vlerësuam manualisht secilën pjesë të kodit për dobësitë e sigurisë sipas udhëzimeve të CWE (Numërimi i dobësisë së përbashkët).

Nga 72,483 fragmente të kodit të ekzaminuar të përdorura në të paktën një projekt të pritur nga GitHub, kemi gjetur një total prej 69 fragmentesh të kodeve të cenueshme të klasifikuara në 29 lloje. Shumë nga fragmentet e kodeve të studiuara nuk janë rregulluar ende, "thanë studiuesit në raportin e tyre.

69 fragmente të kodit të prekshëm gjenden në Stack Overflow ripërdoren në gjithsej 2859 projekte GitHub. Për të përmirësuar cilësinë e fragmenteve të kodit të përbashkët në Stack Overflow, ata kanë zhvilluar një shtrirje të shfletuesit që lejon përdoruesit e Stack Overflow të kërkojnë dobësi në fragmente kur i shkarkojnë ato në platformë.

Sidoqoftë, pavarësisht paralajmërimeve të studiuesve, zhvilluesit përsëri kopjojnë kodin Stack Overflow në projektet e tyre pa kryer një analizë.

Ashkan Sami, Profesor i Asociuar i IT, inxhinieri dhe teknologjia e informacionit në Universitetin e Shirazit në Iran, tha se

“Hulumtimi ishte një përpjekje për të shqyrtuar se si kodi i gabuar migrohet nga Stack Overflow në GitHub. Në thelb ajo që jemi përpjekur të tregojmë është se përdorimi i kodit Stack Overflow pa e shqyrtuar atë nga afër mund të çojë në dobësi të aplikacionit, ”tha Sami. Studimi i referohet gjithashtu një artikulli akademik nga 2017.

Sipas këtij artikulli, 1161 copëza të pasigurta të kodit të postuara në Stack Overflow u përdorën në 1.3 milion aplikacione Android të disponueshme në Google Play.

Përveç një studimi të mëparshëm, 46% e zhvilluesve që përdorën kodin StackOverflow pa specifikuar autorin, 75% nuk ​​e dinin që kodi është i licensuar nën CC BY-SA dhe 67% nuk ​​e dinin që kjo nënkupton atribimin e nevojës.

Sipas të dhënave nga studime të tjera, përdorimi i kodit model nuk shoqërohet vetëm me rrezikun e defekteve në kod, por edhe me dobësitë.

Për shembull, pasi analizuan 72483 mostra të kodit C ++ në StackOverflow, studiuesit identifikuan dobësi serioze në 69 mostra (që është 0.09%), të përfshira në listën e rekomandimeve më të njohura.

Fuente: https://programming.guide


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.