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

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

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

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

כיצד לכתוב קוד מאובטח

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

זה הרבה יותר פשוט ממה שאתם חושבים מכיוון שכל המפתחים הטובים יודעים כמעט הכל על האפליקציות שהם מפתחים. לכן, עליך לדעת כל ערך שהבקשה שלך דורשת כדי לבצע משימה (הערכים המאושרים) ולהבין שכל ערך אפשרי אחר הקיים הוא ערך לא מאושר.

כתיבת קוד מאובטח

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

instagram viewer

יצירת התוכנית ב- Java דוגמה


ייבא java.util. סוֹרֵק;
מעמד ציבורי ראשי {
// הפונקציה העיקרית שמבצעת את התוכנית ואוספת את שני הערכים
ראשי סטטי ציבורי ריק (מחרוזת [] טוען) {
System.out.println ("אנא הזן את שני הערכים השלמים שלך:");
ערך int1;
ערך int2;
קלט סורק = סורק חדש (System.in);
value1 = input.nextInt ();
value2 = input.nextInt ();
תוספת (ערך 1, ערך 2);
input.close ();
}
// הפונקציה שאוספת את שני הערכים ומציגה את הסכום שלהם
תוספת חלל סטטית פרטית (int value1, int value2) {
סכום אינט;
סכום = ערך 1 + ערך 2;
System.out.println ("סכום שני הערכים השלמים שהזנת:" + סכום);
}
}

הקוד שלמעלה מייצר יישום התואם במדויק לדרישות. בעת ביצועו, הוא יפיק את השורה הבאה במסוף:


אנא הזן את שני הערכים השלמים שלך:

היישום יישאר מושהה עד שהמשתמש יזין שני ערכים שלמים במסוף (פירוש הדבר הקלדת הערך הראשון, לחיצה על מקש Enter וחזרה).

אם המשתמש מזין את הערכים 5 ו 4 במסוף התוכנית תפיק את הפלט הבא:


סכום שני הערכים השלמים שהזנת: 9

זה נהדר; התוכנית עושה בדיוק את מה שהיא צריכה לעשות. עם זאת, אם משתמש מזויף יבוא ויכניס ערך לא שלם, כגון "g", ליישום שלך יהיו בעיות. הסיבה לכך היא שאף קוד ביישום לא מגן מפני ערכים שלא אושרו.

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

אבטחת דוגמת התוכנית שלך


ייבא java.util. InputMismatchException;
ייבא java.util. סוֹרֵק;
מעמד ציבורי ראשי {
// הפונקציה העיקרית שמבצעת את התוכנית ואוספת את שני הערכים
ראשי סטטי ציבורי ריק (מחרוזת [] טוען) {
נסה {
System.out.println ("אנא הזן את שני הערכים השלמים שלך:");
ערך int1;
ערך int2;
// באמצעות מחלקת הסורקים לקריאת כל קלט מהמשתמש,
// ולהקצות אותו למשתנה בהתאמה (משליך חריג אם הערכים אינם מספרים שלמים)
קלט סורק = סורק חדש (System.in);
value1 = input.nextInt ();
value2 = input.nextInt ();
// קורא לפונקציית החיבור ומעביר אליה את שני הערכים
תוספת (ערך 1, ערך 2);
// סוגר את זרם הקלט לאחר שהגיע לסוף השימוש בו
input.close ();
// לטפל בכל השגיאות שנזרקו בבלוק הניסיון
} לתפוס (InputMismatchException e) {
System.out.println ("אנא הזן ערך שלם חוקי.");
} לתפוס (חריג e) {
System.out.println (e.getMessage ());
}
}
// הפונקציה שאוספת את שני הערכים ומציגה את הסכום שלהם
תוספת חלל סטטית פרטית (int value1, int value2) {
סכום אינט;
סכום = ערך 1 + ערך 2;
System.out.println ("סכום שני הערכים השלמים שהזנת:" + סכום);
}
}

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


אנא הזן ערך שלם חוקי.

מהי טיפול בחריגים?

בעיקרו של דבר, טיפול בחריגים הוא הגרסה המודרנית של טיפול בשגיאות, שם אתה מפריד בין קוד טיפול לשגיאות לבין קוד עיבוד רגיל. בדוגמה שלמעלה, כל קוד העיבוד הרגיל (או הקוד שעלול להוציא חריג) נמצא בתוך לְנַסוֹת לחסום, וכל קוד הטיפול בשגיאות נמצא בתוך לתפוס חסימות.

אם תסתכל מקרוב על הדוגמה שלמעלה, תגלה שיש שתי גושי תפיסה. הראשון לוקח InputMismatchException טַעֲנָה; זהו שם היוצא מן הכלל שנזרק אם מזינים ערך שאינו שלם. השני לוקח יוצא מן הכלל טיעון, וזה חשוב מכיוון שמטרתו לתפוס כל חריג בתוך הקוד שהמפתח לא מצא במהלך הבדיקה.

קָשׁוּר: יוצאי דופן בג'אווה: האם אתה מטפל בהם נכון?

בודק את הקוד שלך

לעולם אל תזלזל בכוח הבדיקה ובדיקת הקוד שלך לפני האריזה. מפתחים רבים (ומשתמשים ביישומים שלהם) מוצאים באגים חדשים לאחר שהתוכנה זמינה לציבור.

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

קָשׁוּר: כיצד לנחות את עבודת בדיקת התוכנה הראשונה שלך

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

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

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

אבטחת מסד הנתונים שלך

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

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

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

בקרת גישה

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

זה אמור להיות מסוגל למנוע ממשתמש רשום גישה או עריכה לנתונים שאינם מורשים לתקשר איתם.

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

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

עכשיו שאתה יודע לאבטח את התוכנה שלך, כדאי לך ללמוד על כמה שלבים לפיתוח תוכנה.

אימייל
6 שלבי פיתוח תוכנה שכל המתכנתים צריכים לדעת

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

קרא הבא

נושאים קשורים
  • תִכנוּת
  • אבטחת סייבר
  • טיפים לקידוד
על הסופר
קדישא קין (15 מאמרים פורסמו)

Kadeisha Kean היא תוכנת Full-Stack תוכנה וסופרת טכנית / טכנולוגית. יש לה יכולת מובהקת לפשט כמה מהמושגים הטכנולוגיים המורכבים ביותר; הפקת חומר שניתן להבין בקלות על ידי כל טירון טכנולוגי. היא נלהבת לכתוב, לפתח תוכנות מעניינות ולנסוע בעולם (באמצעות סרטי תעודה).

עוד מקדאישה קין

הירשם לניוזלטר שלנו

הצטרף לניוזלטר שלנו לקבלת טיפים, ביקורות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!

צעד אחד נוסף !!!

אנא אשר את כתובת הדוא"ל שלך בדוא"ל ששלחנו לך זה עתה.

.