תעודת זהות מול כרטיס VIP
ההבדל בין לוודא מי אתה לבין לבדוק מה מותר לך.
אחת מפרצות האבטחה הכי נפוצות באפליקציה היא משתמש שעושה משהו שהוא לא אמור. רוב האנשים מתבלבלים ומערבבים בין אימות (Authentication) להרשאות (Authorization). בואו נעשה סדר.
אימות זה תעודת הזהות — מגיעים למלון, מראים בקבלה תעודת זהות, בודקים, ואוקיי, אתם זה אתם. הרשאות זה כרטיס ה-VIP — אתם זה אתם, אבל האם מותר לכם להיכנס לבריכה, לג'קוזי, לספא? אימות אומר מי אתה. הרשאות אומרות מה מותר לך.
דוגמה אמיתית: משתמש מספר 44 משנה את המספר ב-URL ל-45, ופתאום נחשף למידע של מישהו אחר. למה זה קרה? בדקו מי הוא (אימות) — אבל אף אחד לא בדק אם מותר לו לעשות את זה (הרשאות).
טיפ: אם בניתם אפליקציה עם הרשמה — רוצו לבדוק שלמשתמשים מותר לראות ולעשות בדיוק את מה שהתכוונתם שמותר להם, ולא יותר.
"אימות שואל 'מי אתה?'. הרשאות שואלות 'מה מותר לך?'. שכחתם את השנייה — ומישהו כבר קורא את הנתונים של מישהו אחר."