קטע קוד Java הנפוץ ביותר ב- Stack Overflow מכיל שגיאה

Java

מחקר שפורסם ב אוקטובר 2018 במגזין Empirical Engineering Engineering על ידי האקדמאים סבסטיאן בלטס וסטפן דיהל גילה שקטע קוד נמסר ב תשובה לשאלה מאת Stack Overflow בספטמבר 2010 על ידי Andreas Lundblad, מפתח Java ב- Palantir, זהו קטע קוד Java הנפוץ ביותר בפלטפורמת הקהילה.

עם זאת, בפוסט בשבוע שעבר, Lundblad הסביר כי הקוד לקוי וכי הוא ממיר באופן שגוי את מספר הבתים בפורמטים הניתנים לקריאה אנושית. הקוד המדובר צבר יותר מאלף המלצות ונכלל גם בפרויקטים רבים והוא נמצא במאגרים ב- GitHub כ- 7 פעמים.

ראוי לציין זאת השגיאה לא נמצאה על ידי המשתמשים שהשתמשו בקוד הזה בפרויקטים שלהם, אלא על ידי הכותב המקורי של הטיפ.

הקוד שנחשב המיר את גודל הבייט בצורה קריאה, לדוגמא 110592 שהומר ל- "110.6 kB" או "108.0 KiB". הקוד הוצע כגרסא של הייעוץ שהוצע בעבר, שעבר אופטימיזציה באמצעות לוגריתמים, בו הערך נקבע על ידי חלוקת הערך ההתחלתי בלולאה ב- «10 18, 10 15, 10 12, 10 19, 10 6, 10 3 ו- 10 0 , גם כאשר המחלק גדול מהערך המקורי בתים.

עקב חישובים לא מדויקים בגרסה המותאמת (הצפת ערך ארוך), התוצאה של עיבוד מספרים גדולים מאוד (exabytes) לא תואמים את המציאות.

לונדבלד הסביר כי בקוד יש שגיאת המרה טריוויאלית שרק הביאה להערכות גודל קבצים מעט לא מדויקות. עם זאת, ההערכה היא שזה היה הרבה יותר גרוע מזה.

הקוד יכול היה להכיל פגיעות אבטחה, לדוגמה. אם זה היה המקרה, היה לוקח חודשים או שנים לתקן את כל היישומים הפגיעים, ולחשוף את המשתמשים להתקפות.

מחבר העצה ניסה גם להפנות את תשומת הלב לבעיה להשתמש בדוגמאות ללא התייחסות למקור ומבלי לציין רישיון.

"בפגישות שיתופיות הכוללות מספר קודנים אנושיים, הערכנו באופן ידני כל פיסת קוד עבור פגיעויות אבטחה על פי הוראות CWE (Common Weakness Enumeration).

מתוך 72,483 קטעי קוד סרוקים המשמשים לפחות בפרויקט אחד של GitHub, מצאנו בסך הכל 69 קטעי קוד פגיעים המסווגים ל- 29 סוגים. רבים מקטעי הקוד שנבדקו עדיין אינם קבועים ", אמרו החוקרים בדו"ח שלהם.

69 קטעי הקוד הפגיעים נמצא ב- Stack Overflow נעשה שימוש חוזר בסך הכל 2859 פרויקטים של GitHub. כדי לשפר את איכות קטעי הקוד המשותפים ב- Stack Overflow, הם פיתחו סיומת דפדפן המאפשרת למשתמשי Stack Overflow לחפש נקודות תורפה בתוספים כאשר הם מורידים אותם לפלטפורמה.

עם זאת, למרות סייגיהם של החוקרים, מפתחים עדיין מעתיקים את קוד Stack Overflow לפרויקטים שלהם מבלי לבצע ניתוח.

אשקן סמי, פרופסור חבר ל- IT, הנדסה וטכנולוגיית מידע באוניברסיטת שיראז באיראן, אמר את זה

"המחקר היה ניסיון לבחון כיצד קוד פגום מועבר מ- Stack Overflow ל- GitHub. ביסודו של דבר מה שניסינו להראות הוא ששימוש בקוד Stack Overflow מבלי להסתכל מקרוב עליו יכול להוביל לפגיעות ביישומים, "אמר סמי. המחקר מתייחס גם למאמר אקדמי משנת 2017.

על פי מאמר זה, 1161 קטעי קוד לא בטוחים שפורסמו ב- Stack Overflow שימשו ב -1.3 מיליון אפליקציות אנדרואיד הזמינות ב- Google Play.

בנוסף למחקר קודם, 46% מהמפתחים שהשתמשו בקוד StackOverflow מבלי לציין את המחבר, 75% לא ידעו שהקוד מורשה תחת CC BY-SA ו -67% לא ידעו שזה מרמז על הצורך בייחוס.

על פי נתונים ממחקרים אחרים, השימוש בקוד לדוגמא קשור לא רק לסיכון לבאגים בקוד, אלא גם לפגיעות.

לדוגמא, לאחר ניתוח 72483 דגימות קוד ++ C ב- StackOverflow, החוקרים זיהו פגיעות קשות ב- 69 דגימות (שהם 0.09%), הכלולות ברשימת ההמלצות הפופולריות ביותר.

מקור: https://programming.guide


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.