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

Splync v1.1 שוחרר עם אימות אימייל

Splync v1.0 ל-Splync v1.1

כאשר נרשמים ל-Splync, מתבקשים להכניס כתובת אימייל וסיסמה. כפי שהצגתי במאמרים קודמים, Splync v1.0 כבר כלל אמצעי אבטחה בסיסיים. העברת הנתונים שלך הוגנה ב-HTTPS. השרת שלנו היה מאובטח עם SSH כך שרק המפתח יכל לגשת אליו. הסיסמה שלך לעולם לא נשמרה בטקסט רגיל אלא הוצפנה בבסיס הנתונים כך שאף אחד לא יכל לפענח אותה. עם זאת, הסוד של גרסה v1.0 היה שאין בה אימות אימייל בתהליך יצירת החשבון. Splync, כמוצר מינימלי בר קיימא (MVP), שוחרר ללא תכונה זו כי האפליקציה הייתה עדיין בשלב שבו רק חברים שלי ידעו על קיומה. בגרסה v1.0, האפליקציה פשוט בדקה אם האימייל שהוכנס מכיל "@" בין רצפי אותיות והאם הוא ייחודי בין החשבונות הקיימים.

מה קורה אם אין אימות אימייל

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

איך פועל אימות אימייל

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

יישום טכני של אימות אימייל

ה-backend של Splync משתמש ב-Python/FastAPI, והאפליקציה הניידת בנויה עם SwiftUI. האפליקציה מטפלת רק בממשק המשתמש, בעוד לוגיקת האימות ופרטי הזהות הרגישים נשארים מוגנים על השרת. בגרסה v1.1, הוספנו שלב אימות אימייל סטנדרטי בין 'משתמש לא מאומת' ל'משתמש מאומת'. כשמשתמש חדש נרשם, האפליקציה שולחת את הנתונים שהוזנו לשרת. לשרת יש בסיס נתונים של MariaDB. הוא שומר את המשתמש כלא מאומת בבסיס הנתונים. הסיסמה מוצפנת ונשמרת, אך החשבון עדיין לא פעיל. ברגע זה, השרת גם מייצר אסימון אימות ייחודי עם זמן תפוגה. לאחר מכן, באמצעות שרת SMTP (Simple Mail Transfer Protocol), השרת שולח אימייל אימות המכיל קישור חד-פעמי מאובטח. כאשר המשתמש פותח את הקישור, השרת בודק שהאסימון תקף ולא פג תוקף. לאחר האימות, החשבון הופך לפעיל, והמשתמש יכול להתחבר כרגיל מהאפליקציה. זה שומר על האימות מאובטח וקל משקל.

Python? FastAPI? SwiftUI? SMTP? MariaDB

אם אלה נשמעים כמו קוד סודי, אל תדאגו — אלו רק הכלים שמאפשרים למערכת לפעול יחד. דמיינו את תהליך ההרשמה ל-Splync כמו מרכז תמיכה ללקוחות שמוודא את זהות מישהו. "האם אוכל לקבל את שמך וכתובת האימייל שלך?" שואלת SwiftUI, המפעילה הידידותית בקדמת הדלפק. אתה מוסר לה את פרטיך, והיא אומרת, "תוכל להמתין רגע?" היא מיד מעבירה אותם ל-FastAPI, מערכת הטלפונים הפנימית של המשרד. FastAPI מחבר אותה ל-Python, המומחה האחורי האחראי על האימות. Python בודק עם MariaDB, בסיס הנתונים של לקוחות, כדי לרשום את המידע שלך בבטחה — מסמן את מעמדך כ'לא מאומת'. לאחר מכן Python מבקש מ-SMTP, השליח החיצוני, לשלוח לך אימייל אישור עם קישור מאובטח. כאשר אתה לוחץ על הקישור, Python מאמת שהוא תקף ומעדכן את הרשומה שלך ב-MariaDB ל'מאומת'. לבסוף, FastAPI מודיע למפעילה שהזהות שלך אומתה, והחשבון שלך כעת פעיל. יחד, חלקים אלו הופכים את תהליך האימות של Splync לאנושי ומאובטח.

הצעד הבא במסע האבטחה של Splync

אימות אימייל אולי נראה כמו תכונה קטנה, אבל הוא משנה את הכל לגבי אמון. זה מסמן את הרגע שבו Splync מתפתח מפרויקט אישי בין חברים לאפליקציה ציבורית שבה כל אחד יכול להצטרף בביטחון. שליחת קישור אימות באמצעות SMTP מרגיש אפילו כמו לחיצה יד ראשונה של Splync עם משתמש חדש. מאחורי הקלעים, תכונה זו מניחה את התשתית לשיפורים עתידיים — איפוס סיסמאות, אימות רב-שלבי, ושחזור חשבונות. כל שכבת אבטחה נבנית על הקודמת. עם אימות האימייל, Splync v1.1 עושה צעד משמעותי קדימה — מה שהופך את ניהול ההוצאות המשותפות לא רק לנוח, אלא ממש אמין.