כלי עזר חדש ומגניב של Snyk ל-VSCode: סורק מודולים בזמן אמת

תוסף פשוט אך אפקטיבי מאוד ל-VSCode שיכול לשפר את האבטחה של המוצרים שלכם.

הביזנס העיקרי של סניק (ושל המתחרות שלה כמו whitesource) זה לספק שירותי אבטחה של מודולים. כל מי שמפתח, משתמש בסופו של דבר בקוד שהוא לא כתב. במיוחד מפתחי קוד פתוח אבל לא רק. הקוד הזה מגיע כספריות, מודולים, פריימוורקים וכו'. עם Node.js זה ממש קל, פשוט עושים npm intsall וצורכים את המודול הזה כ-require או כ-import.

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

למשל, אם אני, בקוד הפרונט אנד שלי או בקוד הבק אנד שלי צריך לבדוק אם מספר מסוים נמצא בטווח של מספםרים, במקום לבנות פונקציה שעושה את זה (שזו מטלה קטנה אבל בכל זאת), אני יכול תוך שניות להשתמש בפונקציה של ספריה שנקראת lodash שמכילה את in range. זה נראה כך:

const inRange = require('lodash/inRange');

const numberToCheck = 3;
const lowBoundry = 2;
const highBoundry = 4;

const result = inRange(numberToCheck, lowBoundry, highBoundry);
console.log(result); // true

זה הכוח של הקוד הפתוח. אבל מה הבעיה? הבעיה היא שהמודולים האלו הם חבילות תוכנה לכל דבר ועניין ובחבילות תוכנה מתגלות חולשות אבטחה. כן, גם ב-Node.js והיו כמה מקרים כאלו בעבר. יש מצב שה-lodash התמים הזה מכיל בעיית אבטחה שתגרום לנו לצרות בהמשך.

הפתרון הוא, בגדול, סריקה סטטית של המודולים עם npm audit או עם סניק, כחלק מהבילד ממש. מפתח השתמש במודול שיש בו חולשות ידועות? הבילד ייפול או שתתקבל התרעה למנהל הפיתוח שיוכל להחליט מה לעשות עם זה. הבעיה היא שהרבה פעמים אנחנו רוצים שהמפתח יקבל התראה באופן מיידי על בעיות אבטחה. כשמפתח מקבל התראה מיידית, ממש בזמן הקלדת השורה, על בעיה, זה הרבה הרבה יותר טוב מאשר הבילד ייפול. כי הרבה פעמים (למרות שזה לא מומלץ), מפתחים עובדים באיטרציות ארוכות. אפילו ארוכות מאוד. ואם הבילד נשבר בגלל ענייני אבטחה, מהניסיון שלי הכי קל זה פשוט לבכות למנהל הפיתוח שיסיר את הבדיקה המנדנדת הזו.

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

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

בדיקת בעיות ב-lodash
בדיקת בעיות ב-lodash

לחיצה על החיווי תראה לנו את התקלה – במקרה הזה מודול של lodash שיש לו בעיות אבטחה.

כמובן שקל לאכוף הגדרות או תוספים בסביבת הפיתוח של המפתחים. את התוספת מתקינים בחנות של VSCode פה. היא לא מכבידה על העורך ומאוד נעימה לשימוש ויכולה לחסוך לכם כאב ראש לא קטן. אני? אני כבר משתמש.

פוסטים נוספים שכדאי לקרוא

פיתוח ב-JavaScript

Axios interceptors

תכנון נכון של קריאות AJAX באפליקציה ריאקטית וניהול השגיאות או ההצלחות עם פיצ׳ר נחמד של axios

פתרונות ומאמרים על פיתוח אינטרנט

נגישות טכנית – פודקאסט ומבוא

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

גלילה לראש העמוד