ברירות מחדל יכולות להטביע אותך
TL;DR: התייחס לתגובות לא ידועות כאל לא מורשות, לא כתקפות.
היום הוא יום אבטחת המחשב וכל מתכנת צריך להכיר באחריות שלו.
דמיינו לעצמכם אפליקציה שמטפלת במכירות המסתמכת על מאגרי תגובות ממעבדי כרטיסי אשראי לטיפול בעסקאות.
כל מעבד כרטיסי אשראי מספק קודי תגובה מוגדרים מראש למצבים שונים, כגון יתרה לא מספקת או כרטיסים שפג תוקפם.
הבעיה מתחילה כאשר מעבד מוסיף קוד תגובה חדש עבור עסקאות שנדחו אך אינו מודיע לפלטפורמה.
האפליקציה לא מזהה את הקוד החדש, כברירת מחדל מתייחסת אליו כ"לא נמצא" ומאשרת את הרכישה.
משתמשים מבחינים בפגם זה ומנצלים אותו לביצוע רכישות לא מורשות.
הכנסות הפלטפורמה צונחות, מה שמוביל לפשיטת רגל.
String response = paymentProcessor.authorize(cardDetails); switch (response) { case "DECLINED_INSUFFICIENT_FUNDS": // Handle insufficient funds break; case "DECLINED_EXPIRED_CARD": // Handle expired card break; default: // Authorize purchase break; }
String response = paymentProcessor.authorize(cardDetails); switch (response) { case "APPROVED": // Authorize purchase break; case "DECLINED_INSUFFICIENT_FUNDS": // Handle insufficient funds break; case "DECLINED_EXPIRED_CARD": // Handle expired card break; case "DECLINED_NEW_REASON": // Handle new declined reason break; default: // Reject purchase (default case for unknown responses) break; }
אתה יכול לזהות את הריח הזה על ידי סקירת ההיגיון של טיפול בשגיאות.
בדוק אם המערכת מתעדת ומכחישה מקרים לא מזוהים.
בדיקות אוטומטיות יכולות לעזור לזהות אם קלט חדש או בלתי צפוי כברירת מחדל לפעולות חוקיות.
כלי ניתוח סטטי יכולים לעזור על ידי סימון של טיפול בשגיאות פוטנציאלי לא שלם.
זה קריטי לשמור על התאמה אחד לאחד בין הייצוג הפנימי של האפליקציה שלך לתגובות מעבד התשלומים לבין הקודים המוחזרים בפועל על ידי המעבד.
כאשר אתה שובר את ה- Bijection , אתה יוצר אי התאמה.
היישום מפרש קודים לא ידועים בצורה שגויה, מה שמוביל להתנהגות בלתי צפויה, פרצות אבטחה והשלכות עסקיות הרות אסון.
כלי AI יכולים ליצור את הריח הזה אם לא תציין כיצד לטפל במקרים לא ידועים.
לדוגמה, טיפול בשגיאות כללי עשוי כברירת מחדל לתוצאות טובות כמו "לא נמצא" או "הצלחה".
מחוללי AI יכולים לתקן את הריח הזה כאשר אתה מורה להם להתייחס למקרים לא ידועים כבלתי מורשים ולהדגיש רישום ובדיקת תרחישים בלתי צפויים.
זכור: עוזרי AI עושים הרבה טעויות
ללא הוראות מתאימות | עם הוראות ספציפיות |
---|---|
תמיד לטפל במקרים לא ידועים בזהירות.
ברירות מחדל כמו "לא נמצא" עלולות להוביל לבעיות אבטחה חמורות ולהפסדים כספיים.
הפוך רישום והכחשת תגובות לא ידועות לחלק משיטות הפיתוח שלך.
קבל החלטות משמרת שמאלה הקשורות לאבטחה בזמן התכנות.
https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xxii
https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-viii-8mn3352
ריחות קוד הם דעתי .
תמונה מאת Nathana Rebouças ב- Unsplash
https://www.youtube.com/watch?v=J2QOejhA6ek
ההנחות הן אם כל הכישלונות.
אמר וייסל
מאמר זה הוא חלק מסדרת CodeSmell.