Stack Overflow-де ең көп қолданылатын Java кодының үзіндісінде қате бар

Java

Жылы жарияланған зерттеу Қазан 2018 эмпирикалық бағдарламалық жасақтама журналында ғалымдар Себастьян Балтес пен Стефан Диль ішінде берілген код үзіндісі анықталды деген сұраққа жауап беру Stack overflow 2010 жылдың қыркүйегінде Андреас Лундблад, Palantir-де Java әзірлеушісі, бұл қауымдастық платформасында ең көп қолданылатын Java код үзіндісі.

Алайда, өткен аптада, Лундблад кодтың дұрыс еместігін және оның байт санын қате түрлендіріп отырғанын түсіндірді адам оқитын форматтарда. Қарастырылып жатқан код мыңнан астам ұсыныстар жинады, сонымен қатар көптеген жобаларға енгізілді және GitHub-тағы қоймаларда шамамен 7 мың рет орналасқан.

Бұл назар аударарлық қолданушылар қатені таппады осы кодты өз жобаларында қолданған, бірақ кеңестің түпнұсқа авторы.

Қарастырылған код байт өлшемін оқылатын түрінде түрлендірді, мысалы 110592 түрлендірілді «110.6 кБ» немесе «108.0 КБ». Код логарифмдерді қолдана отырып оңтайландырылған, бұрын ұсынылған кеңестің нұсқасы ретінде ұсынылды, онда мән бастапқы мәнді циклге бөлу арқылы анықталды «10 18, 10 15, 10 12, 10 19, 10 6, 10 3 және 10 0 ″ , бөлгіш байттағы бастапқы мәннен үлкен болса да.

Оңтайландырылған нұсқадағы дұрыс емес есептеулерге байланысты (ұзақ мәннен асып кету), өте үлкен сандарды өңдеу нәтижесі (экзабайт) шындыққа сәйкес келмеді.

Лундблад бұл кодта айырбастаудың маңызды емес қателігі бар, бұл тек файл өлшемін сәл дұрыс емес бағалауға алып келді деп түсіндірді. Айтуынша, одан да жаман болар еді деп болжануда.

Код қауіпсіздіктің осалдығын қамтуы мүмкін, Мысалға. Егер солай болса, барлық осал қосымшаларды жөндеуге бірнеше ай немесе жылдар қажет болар еді, қолданушылар шабуылға ұшырайды.

Кеңестің авторы проблемаға назар аударуға да тырысты мысалдарды дереккөзге сілтеме жасамай және лицензияны көрсетпей пайдалану.

«Бірнеше адамның кодерлерін қамтыған бірлескен сессияларда біз CWE (Жалпы әлсіздік тізбегі) нұсқауларына сәйкес қауіпсіздік осалдығына арналған кодтың әр бөлігін қолмен бағаладық.

Кем дегенде бір GitHub орналастырған жобада пайдаланылған 72,483 сканерленген код үзінділерінің ішінен біз 69 түрге жіктелген 29 осал код үзіндісін таптық. Зерттелген көптеген код үзінділері әлі түзетілмеген », - дейді зерттеушілер өз баяндамаларында.

69 осал код үзінділері Stack Overflow табылды барлығы 2859 GitHub жобасында қайта пайдаланылды. Stack Overflow-та ортақ код үзінділерінің сапасын жақсарту үшін олар браузер кеңейтімін әзірледі, бұл Stack Overflow пайдаланушыларына платформаға жүктеген кезде үзінділердің осал тұстарын іздеуге мүмкіндік береді.

Алайда, зерттеушілердің ескертулеріне қарамастан, әзірлеушілер Stack Overflow кодын талдау жасамай-ақ жобаларына көшіреді.

Ашкан Сами, IT кафедрасының доценті, инженерлік және ақпараттық технологиялар Иранның Шираз университетінде бұл туралы айтты

«Зерттеу ақаулы кодтың Stack Overflow-дан GitHub-қа қалай көшірілгенін тексеруге бағытталған. Негізінен біз көрсетуге тырысқан нәрсе - Stack Overflow кодын мұқият қарамай қолдану қосымшалардың осалдығына әкелуі мүмкін », - деді Сами. Зерттеу сонымен қатар 2017 жылғы академиялық мақалаға сілтеме жасайды.

Осы мақалаға сәйкес, Google Play-де қол жетімді 1161 миллион Android қосымшасында Stack Overflow-да орналастырылған 1.3 қауіпті код үзінділері қолданылған.

Алдыңғы зерттеуден басқа, StackOverflow кодын авторын көрсетпей қолданған әзірлеушілердің 46% -ы, 75% кодтың CC BY-SA лицензияланғанын білмеді, ал 67% бұл атрибуция қажеттілігін білдіретінін білмеді.

Басқа зерттеулердің деректері бойынша үлгі кодты қолдану кодтағы қателіктермен ғана емес, сонымен қатар осалдықтармен де байланысты.

Мысалы, StackOverflow-тағы 72483 C ++ кодтық үлгілерін талдағаннан кейін, зерттеушілер ең танымал ұсыныстар тізіміне енгізілген 69 сынамада (0.09% құрайды) маңызды осалдықтарды анықтады.

Дерек көзі: https://programming.guide


Мақаланың мазмұны біздің ұстанымдарымызды ұстанады редакторлық этика. Қате туралы хабарлау үшін нұқыңыз Мұнда.

Бірінші болып пікір айтыңыз

Пікіріңізді қалдырыңыз

Сіздің электрондық пошта мекен-жайы емес жарияланады. Міндетті өрістер таңбаланған *

*

*

  1. Деректерге жауапты: Мигель Анхель Гатан
  2. Деректердің мақсаты: СПАМ-ны басқару, түсініктемелерді басқару.
  3. Заңдылық: Сіздің келісіміңіз
  4. Деректер туралы ақпарат: заңды міндеттемелерді қоспағанда, деректер үшінші тұлғаларға жіберілмейді.
  5. Деректерді сақтау: Occentus Networks (ЕО) орналастырған мәліметтер базасы
  6. Құқықтар: Сіз кез-келген уақытта ақпаратты шектей, қалпына келтіре және жоя аласыз.