אני בונה ממשק API עם שקע אינטרנט שמבצע סדרת נתונים באמצעות JSON. האפליקציה עצמה היא אפליקציית צ'אט. הגעתי למבנה הבא כדי לשלוח את הנתונים שלי:
{date: '2020-05-31', time: '14: 28: 05 ', text: "Hey!", אל: '<id: int>', מ: '<id: int>'}
המשתמש בעצם שולח הודעה דרך הדפדפן וזה מתקבל בשרת רשת האינטרנט. ה מ: 'מזהה' יהיה מהמשתמש ששולח את הנתונים ואילו ה אל: 'מזהה' יהיה למשתמש שהנתונים נשלחים.
כשמסתכלים על זה יש לי תחושה רעה מאוד. המחשבות שלי; המשתמש המשתמש באפליקציה תאמת באופן תיאורטי ושם הוא יקבל את הזהות שלו. ואז למקלט יהיה מזהה אחר, כזה שאינו זהה לזה המאומת (ברור). לאחר מכן השרת יחפש את המזהה הזה וישלח את ההודעה, אבל אני לא בטוח אם זה מאובטח.
יש לי כמה היבטים שלדעתי חייבים להתמודד כראוי כדי להגן על האפליקציה מפני כל תוקף:
- מה אם התוקף יחליט לטפל ב" מ: id " כך שיוכל לשלוח הודעות שרירותיות לכל אחד מכל משתמש?
- מה אם התוקף בונה סקריפט שמסרב מיליוני הודעות על ידי ניצול השדה "ל: id"
האם יתכן ויש בעיה אבטחתית אחרת אני לא מודאג?