מה הקוד באמת עושה
עשרים מנגנונים שנבדקו מול הקוד ב-16.9.2026. משפט אחד לכל מנגנון.
נבדק מול הקוד ב-16.9.2026
כל שאילתה למסד הנתונים עוברת דרך תוסף Prisma שמצמיד אותה לארגון של הבקשה, ושאילתה בלי הקשר ארגוני נכשלת במקום להחזיר שורות.
מפתחות TOTP וטוקנים של ספקים חיצוניים נשמרים מוצפנים ב-AES-256-GCM, עם מחזיק מפתחות שמאפשר להחליף מפתח בלי לאבד גישה לנתונים קיימים.
כל תגובת HTML מקבלת Content-Security-Policy עם nonce אקראי לבקשה, וסקריפט inline בלי ה-nonce הזה לא רץ.
כל קריאה משנה-מצב עם סשן צוות חייבת לשאת טוקן CSRF שתואם לעוגייה, והאכיפה לא ניתנת לכיבוי בייצור.
קישור קבלה על החלטת לקוח חתום ב-HMAC-SHA256, החתימה נבדקת לפני כל קריאה למסד, וכל כשל מחזיר אותו 404.
קישור שיתוף הוא טוקן אקראי של 32 בייט שרק ה-SHA-256 שלו נשמר, עם תפוגה, סיסמה אופציונלית וביטול מיידי; קישור מבוטל, פג או לא קיים עונה באותו 404.
כל קובץ שמועלה נסרק ב-ClamAV על מכונה פרטית ברשת הפנימית לפני שנוצר ממנו רינדור, וקובץ שלא קיבל תוצאה "נקי" מוחזק ואינו מוגש.
קבצים מעל 2 GiB מוחזקים, לא נסרקים. קובץ מוחזק אינו מוגש.
לקוח נכנס לפורטל בלי חשבון, בקוד, בקישור, בטלפון או במייל; רק HMAC של הקוד או הטוקן נשמר, לדלת יש תפוגה (ברירת מחדל 30 יום), וביטול מנתק כל מכשיר תוך שתי דקות.
יומן הפעילות נכתב רק בהוספה: אין בקוד האפליקציה שום נתיב עדכון או מחיקה לרשומת יומן, ושער CI נכשל על כל ניסיון להוסיף אחד.
כל מסלול API מוגבל בקצב לפי משתמש או כתובת IP במונה משותף ב-Redis לכל המופעים; כש-Redis לא זמין המגבלה יורדת לשליש לכל מופע במקום להיפתח.
הסשן הוא עוגיית JWT חתומה (HS256) עם HttpOnly, Secure ו-SameSite=Lax, שפגה אחרי שעתיים ללא פעילות וניתנת לביטול בכל המכשירים בבת אחת; סיסמאות נשמרות כ-scrypt, וקודי שחזור ל-MFA נשמרים רק כ-HMAC.
הפורטל, קישורי שיתוף, קבלות, קבלת הזמנות ודפי השלמת הרשמה ואיפוס סיסמה נושאים noindex, ו-robots.txt חוסם את /api/, /admin, /app ואת /coupons.
בעל סביבת עבודה מייצא את הנתונים ומוחק את סביבת העבודה או את חשבונו בעצמו; המחיקה מנתקת מיד, והמחיקה הסופית רצה אוטומטית אחרי 30 יום, המספר שכתוב בתנאים, במדיניות הפרטיות וב-DPA.
סודות נטענים מ-Secret Manager בזמן הפריסה, נבדקים בעלייה (אורך מינימלי, ערכי placeholder נדחים, מפתח ההצפנה חייב להיות 32 בייט אקראיים) ומושמטים מהלוגים ומדיווחי השגיאות.
קריאות מתוזמנות מאומתות בחתימת HMAC-SHA256 עם חלון זמן של חמש דקות או בטוקן OIDC של Google, וסוד קבוע ב-Bearer נדחה בייצור.
כל בקשה יוצאת לכתובת שמשתמש סיפק (ייבוא מ-Drive, webhooks) נבדקת מול טווחי כתובות פרטיות, כולל אחרי הפניות ובזמן החיבור.
גוף בקשה ל-API מוגבל ל-1 MiB ונבדק מול סכמה קפדנית שדוחה שדות לא מוכרים לפני שהקוד נוגע בו.
סוג הקובץ נקבע מהבייטים עצמם ולא מההצהרה של הדפדפן, וקובץ שחורג ממכסת התוכנית או מגודל הקובץ המותר נדחה לפני ההעלאה.
כל נתיב אובייקט נבדק מול תחילית הארגון לפני חתימה, קריאה או מחיקה, וקבצים מוגשים בקישורים חתומים לזמן קצוב (6 שעות לצפייה, 5 דקות להורדה).
הצעות AI נשמרות כהצעה ומוחלות רק אחרי אישור של אדם, והקוד של ה-AI אינו רשאי לפתוח הקשר-מערכת מעל נתוני לקוח; שער CI אוכף זאת.
כל פריסה עוברת קודם את חבילת הבדיקות המלאה עם כיסוי, את שערי הקוד ואת npm audit ברמת high; פריסת ייצור עוברת גם canary עם בדיקות מוכנות.
איפה רצים השרתים
השרתים, מסד הנתונים והקבצים של Tasked נמצאים באזור europe-west1 של Google Cloud (בלגיה).
ספקי משנה (דוא"ל, SMS, סליקה, דיווח שגיאות, ספקי AI) ו-Google Analytics, שמודד את השימוש באתר ובאפליקציה, מעבדים נתונים מחוץ לאזור הזה.
מה באחריותכם
- קישורי פורטל, שיתוף וקבלה הם אישור כניסה: מי שמחזיק בקישור נכנס.
- MFA הוא לבחירת החשבון, לא חובה על כל החשבונות.
- קובץ מוחזק דורש פעולה של חבר סביבת עבודה.
- נתונים שנמחקו ניתנים לשחזור 30 יום, ואחרי כן הם נמחקים סופית.
להתחיל בלי כרטיס אשראי
ארבעה עשר יום ניסיון מלא. פותחים חשבון, מספרים ל-AI איך אתם עובדים, ומזמינים לקוח לאשר.