איך האבטחה עובדת
אין מפתח מסד נתונים בדפדפן
טבלאות הרשומות, חשבונות המשתמשים והסשנים חסומות למפתח הציבורי — לא «מוגנות חלקית», אלא ללא שום מדיניות שמתירה גישה. המשמעות: גם אם כל מה שרץ בדפדפן ייחשף, אי אפשר לקרוא ממנו שורה אחת.
כל בקשה נבדקת מול כלל
לכל טבלה ארבעה כללים — מי קורא, מי יוצר, מי מעדכן ומי מוחק. הכלל נבדק בשרת בכל פנייה, וכשהוא «רק מי שיצר», הסינון נכנס לתוך השאילתה עצמה. טעות מחזירה אפס שורות, לא שורות של מישהו אחר.
כלל שהמודל כתב ואינו במילון שהשרת מכיר לא נשמר: הוא מוחלף בברירת המחדל הבטוחה של אותה פעולה. הפירוט המלא נמצא במי רואה מה.
משתמש של אפליקציה אחת אינו משתמש באחרת
כל סשן נשמר עם מזהה האפליקציה שהונפק בשבילה. טוקן שנלקח מאתר אחד מוצג באתר אחר כאנונימי — לא כשגיאה, פשוט כמי שלא מחובר.
הרשמה לאפליקציה לא מעניקה תפקיד מנהל לאף אחד. תפקיד מנהל ניתן רק מהמסך של הבעלים, או מראש בהזמנה אישית — כי הרשמה היא דלת ציבורית, ואפליקציה חיה מהבנייה הראשונה.
האתר שלכם לא מדבר עם אף אחד
אתר בנוי אינו מחזיק שום סוד, והמדיניות שלו מתירה לו לפנות רק לשרת שלנו. מידע חיצוני — זמני שבת, שערי מטבע — מגיע דרכנו ולא ממנו, ולכן אין באתר מפתח שאפשר לגנוב.
האתרים יושבים על שם מתחם נפרד מזה של המערכת, כך שקוד שרץ באתר בנוי לא יכול להגיע לחשבון שלכם כאן.
מה שלא מספרים
מזהה של פרויקט מופיע בכתובת, ולכן הוא לעולם לא מעניק גישה בעצמו. בקשה למשאב שאינכם רשאים לגעת בו מקבלת «לא נמצא» ולא «אין הרשאה» — כי התשובה השנייה מאשרת שהמשאב קיים.
אותו עיקרון חל על הרשמה: כתובת דוא"ל שכבר רשומה מקבלת בדיוק את אותה תשובה ככתובת חדשה, ולא נשלח אליה דבר — אחרת הטופס היה הופך למכשיר לבדיקה מי רשום אצלכם.