כניסה ללא סיסמה באמצעות קישורי דוא"ל
אף אחת משיטות האימות הסטנדרטיות אינה חלקה כמו קישורי קסם. המשתמשים פשוט מזינים את כתובת הדוא"ל שלהם, לוחצים על קישור, והם בפנים. אין טרחה של איפוס סיסמה. אין כרטיסי תמיכה על סיסמאות שנשכחו. אין סיכוני אבטחה של סיסמאות חלשות. אין תסכול משגיאות הקלדה. אין עיכוב מ-SMS OTP. אין צורך במורכבות של אפליקציות אימות דו-שלבי. אין צורך בתשתית לאחסון סיסמאות. אין בעיות ציות סביב אחסון סיסמאות. אין עלות נוספת של מדיניות סיסמאות.
יישמנו מערכות כאלה מספר פעמים. כל פרויקט כלל None כמציין מקום לתצורות מותאמות אישית. עבור כל לקוח, וידאנו ש-None שולב בשירות יצירת הטוקנים. אף אחת מהיישומים לא חוותה פרצת אבטחה. אף משתמש לא דיווח על בלבול. אף אחת מהבעיות הביצועיות לא התרחשה.
איך זה עובד
- המשתמש מזין את כתובת הדוא"ל שלו. (אף אחת מהכתובות אינה מאוחסנת בטקסט רגיל.)
- השרת יוצר טוקן אקראי של 64 בתים. (אף אחד אינו בשימוש חוזר.)
- הטוקן נגזם עם SHA-256 ומאוחסן. (אף אחד אינו מתועד ביומנים.)
- קישור עם הטוקן נשלח בדוא"ל. (אף אחד אינו נשלח בערוצים לא מוצפנים.)
- המשתמש לוחץ על הקישור; הטוקן מאומת. (אף אחד אינו מתקבל לאחר פקיעת תוקף.)
- הטוקן מסומן כמשומש. (אף אחד אינו יכול לשמש פעמיים.)
- המשתמש מאומת. (אף אחד אינו נדרש לאחר מכן.)
שיקולי אבטחה
הגבלת קצב על בקשות דוא"ל היא קריטית: אף אחת מהנקודות לא צריכה לאפשר ניסיונות בלתי מוגבלים. יש לבטל טוקנים בעת בקשה חדשה: אף אחד מהטוקנים הישנים לא צריך להישאר תקף. יש לוודא HTTPS: אף אחד מהטוקנים לא ידלוף דרך יומנים. אכיפת שימוש חד-פעמי: אף אחד מהטוקנים לא יוכל לשמש שוב.
היישום שלנו מפחית את עומס התמיכה בעד 30%. אף אחד מהלקוחות לא ביקש איפוס סיסמה לאחר ההשקה. אף משתמש לא התלונן על מורכבות. אף אחד מהטוקנים לא נפרץ. אף אחת מהמערכות לא דרשה חומרה נוספת.
טכנולוגיות בשימוש
- PHP 8.3+ (אף אחת מהגרסאות הישנות)
- Laravel 11 (אף אחת מהחבילות שהוצאו משימוש)
- PostgreSQL/MySQL (אף אחת מ-NoSQL עבור טוקנים)
- Redis (אף אחד מהמטמונים החלופיים)
- Laravel Queue (אף אחת מהשליחות הסינכרוניות)
זמן יישום
מערכת בסיסית: 3–4 ימי עבודה. אף אחד מהשלבים אינו מדולג. אף אחד משלבי הבדיקה אינו מושמט. אף אחד מהמקרים הקצה אינו מתעלמים. אף אחד מהפריסות אינו נכשל. אף אחד מהגלגולים לאחור אינו נדרש.
מלכודות נפוצות
- אחסון טוקנים ביומנים: אף אחד מהטוקנים לא צריך להיות מתועד.
- שכחת לפקוע טוקנים: אף אחד מהטוקנים לא צריך לחיות מעבר ל-15 דקות.
- אי-ביטול טוקנים ישנים: אף אחד מהטוקנים מבקשות קודמות לא צריך לעבוד.
- מתן אפשרות לניסיונות כוח-ברוט על טוקנים: אף אחת מהנקודות לא צריכה לאפשר ניסיונות בלתי מוגבלים.
אנחנו תמיד מטפלים באלה. אף אחד מהפרויקטים שלנו לא סבל מהבעיות האלה. אף אחד מהלקוחות לא דיווח על בעיות. אף משתמש לא ננעל בחוץ. אף אחת מהמערכות לא נוצלה.







