דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • בהיר
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • כהה
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
מתמחים טופ
  1. דף הבית
  2. מחשבים וטכנולוגיה
  3. עזרה הדדית - מחשבים וטכנולוגיה
  4. מדריך | איך לאבטח נכון את האתר שלכם בBase44?

מדריך | איך לאבטח נכון את האתר שלכם בBase44?

מתוזמן נעוץ נעול הועבר עזרה הדדית - מחשבים וטכנולוגיה
base44סייבראבטחהאברהם גלסר
4 פוסטים 2 כותבים 50 צפיות 2 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • אברהם גלסרא מחובר
    אברהם גלסרא מחובר
    אברהם גלסר
    מדריכים
    כתב נערך לאחרונה על ידי אברהם גלסר
    #1

    מי שזוכר, בעבר פרסמתי פה פוסט שהסביר על פרצת אבטחה רצינית שיש באתרים שנבנים עם הפלטפורמה Base44.
    הפרצה עדיין לא תוקנה, ולכן אני ממליץ לכל מי שיש לו אתר בBase44 עם מערכת משתמשים (מנהלים, יוזרים וכו') - לקרוא את ההסבר הבא בעיון:

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

    זה נכון לכל סוג של משתמש, למשל "עורך", "מנהל ראשי", "מפקח" או כל דבר אחר.

    פרומפט אפשרי שאפשר לתת לסוכן של Base44:

    אני צריך שתבצע תיקון אבטחה חשוב באתר שלי.
    
    יש באתר מערכת משתמשים עם הרשאות, למשל: מנהל, עורך, מנהל ראשי, מפקח או כל תפקיד אחר שקיים בפרויקט.
    
    הבעיה:
    כרגע אסור להסתמך רק על שדה/פרמטר בצד הלקוח כמו role, isAdmin, admin, userType וכדומה כדי לקבוע האם למשתמש יש הרשאות ניהול. הרשאות כאלה עלולות להיות מזויפות או משתנות בצד הלקוח.
    
    הדרישה:
    בכל מקום שבו האתר בודק האם למשתמש יש הרשאה מיוחדת, צריך לבצע אימות חזק יותר לפי שני תנאים יחד:
    
    1. למשתמש יש את התפקיד המתאים במערכת, למשל admin / editor / supervisor וכו'.
    2. כתובת המייל של המשתמש תואמת לרשימת כתובות מייל מאושרות מראש עבור אותו תפקיד.
    
    כלומר, משתמש ייחשב מנהל רק אם:
    - הוא מוגדר כמנהל במערכת
    - וגם המייל שלו נמצא ברשימת המיילים המאושרים של מנהלים
    
    אותו עיקרון צריך לחול גם על כל תפקיד אחר באתר:
    - עורך
    - מנהל ראשי
    - מפקח
    - כל תפקיד בעל הרשאות מיוחדות
    
    נא לבצע את זה בצורה הבאה:
    
    1. ליצור רשימת מיילים מאושרת לכל תפקיד רגיש.
    לדוגמה:
    - ADMIN_EMAILS
    - SUPER_ADMIN_EMAILS
    - EDITOR_EMAILS
    - MODERATOR_EMAILS
    
    2. בכל בדיקת הרשאה באתר, להחליף בדיקה פשוטה כמו:
    user.role === "admin"
    או:
    user.isAdmin === true
    
    בבדיקה כפולה:
    - האם למשתמש יש את התפקיד המתאים
    - האם user.email נמצא ברשימת המיילים המאושרים של אותו תפקיד
    
    3. לוודא שהבדיקה לא נמצאת רק בתצוגה של הכפתורים או הדפים, אלא גם לפני כל פעולה רגישה בפועל:
    - כניסה לדף ניהול
    - צפייה במידע רגיש
    - יצירה, עריכה או מחיקה של נתונים
    - שינוי משתמשים
    - שינוי הרשאות
    - פרסום/אישור/מחיקה של תוכן
    - כל פעולה שמיועדת רק למנהלים או בעלי תפקידים
    
    4. אם משתמש לא עומד בשני התנאים, יש לחסום את הפעולה ולהציג הודעה כללית:
    "אין לך הרשאה לבצע פעולה זו."
    
    5. לא להציג למשתמשים רגילים פרטים פנימיים כמו רשימת המיילים המאושרים, שמות משתנים, או הסבר טכני על מנגנון ההרשאות.
    
    6. לוודא שכל אזורי הניהול מוגנים גם ברמת הניווט/הראוטים וגם ברמת הפעולות עצמן, כדי שלא יהיה אפשר להגיע לפעולה רגישה דרך קישור ישיר או קריאה ידנית.
    
    7. נא לעבור על כל הקוד בפרויקט ולמצוא את כל המקומות שבהם מתבצעת בדיקת הרשאות, ולאבטח את כולם לפי המנגנון הכפול הזה.
    
    8. אחרי התיקון, נא להסביר לי בקצרה:
    - אילו קבצים שינית
    - אילו תפקידים קיימים במערכת
    - היכן נמצאות רשימות המיילים המאושרות
    - איך מוסיפים מנהל/עורך חדש בצורה בטוחה
    
    חשוב:
    המטרה היא שלא תהיה הסתמכות על הרשאה שמגיעה רק מהלקוח. כל תפקיד רגיש חייב להיבדק מול כתובת מייל מאושרת מראש בנוסף לשדה התפקיד.
    

    מקווה שעזרתי 🙏

    ע"ה דכו"עע תגובה 1 תגובה אחרונה
    3
    • אברהם גלסרא אברהם גלסר התייחס לנושא זה
    • אברהם גלסרא אברהם גלסר העביר נושא זה מ-מדריכים - מחשבים וטכנולוגיה
    • אברהם גלסרא אברהם גלסר

      מי שזוכר, בעבר פרסמתי פה פוסט שהסביר על פרצת אבטחה רצינית שיש באתרים שנבנים עם הפלטפורמה Base44.
      הפרצה עדיין לא תוקנה, ולכן אני ממליץ לכל מי שיש לו אתר בBase44 עם מערכת משתמשים (מנהלים, יוזרים וכו') - לקרוא את ההסבר הבא בעיון:

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

      זה נכון לכל סוג של משתמש, למשל "עורך", "מנהל ראשי", "מפקח" או כל דבר אחר.

      פרומפט אפשרי שאפשר לתת לסוכן של Base44:

      אני צריך שתבצע תיקון אבטחה חשוב באתר שלי.
      
      יש באתר מערכת משתמשים עם הרשאות, למשל: מנהל, עורך, מנהל ראשי, מפקח או כל תפקיד אחר שקיים בפרויקט.
      
      הבעיה:
      כרגע אסור להסתמך רק על שדה/פרמטר בצד הלקוח כמו role, isAdmin, admin, userType וכדומה כדי לקבוע האם למשתמש יש הרשאות ניהול. הרשאות כאלה עלולות להיות מזויפות או משתנות בצד הלקוח.
      
      הדרישה:
      בכל מקום שבו האתר בודק האם למשתמש יש הרשאה מיוחדת, צריך לבצע אימות חזק יותר לפי שני תנאים יחד:
      
      1. למשתמש יש את התפקיד המתאים במערכת, למשל admin / editor / supervisor וכו'.
      2. כתובת המייל של המשתמש תואמת לרשימת כתובות מייל מאושרות מראש עבור אותו תפקיד.
      
      כלומר, משתמש ייחשב מנהל רק אם:
      - הוא מוגדר כמנהל במערכת
      - וגם המייל שלו נמצא ברשימת המיילים המאושרים של מנהלים
      
      אותו עיקרון צריך לחול גם על כל תפקיד אחר באתר:
      - עורך
      - מנהל ראשי
      - מפקח
      - כל תפקיד בעל הרשאות מיוחדות
      
      נא לבצע את זה בצורה הבאה:
      
      1. ליצור רשימת מיילים מאושרת לכל תפקיד רגיש.
      לדוגמה:
      - ADMIN_EMAILS
      - SUPER_ADMIN_EMAILS
      - EDITOR_EMAILS
      - MODERATOR_EMAILS
      
      2. בכל בדיקת הרשאה באתר, להחליף בדיקה פשוטה כמו:
      user.role === "admin"
      או:
      user.isAdmin === true
      
      בבדיקה כפולה:
      - האם למשתמש יש את התפקיד המתאים
      - האם user.email נמצא ברשימת המיילים המאושרים של אותו תפקיד
      
      3. לוודא שהבדיקה לא נמצאת רק בתצוגה של הכפתורים או הדפים, אלא גם לפני כל פעולה רגישה בפועל:
      - כניסה לדף ניהול
      - צפייה במידע רגיש
      - יצירה, עריכה או מחיקה של נתונים
      - שינוי משתמשים
      - שינוי הרשאות
      - פרסום/אישור/מחיקה של תוכן
      - כל פעולה שמיועדת רק למנהלים או בעלי תפקידים
      
      4. אם משתמש לא עומד בשני התנאים, יש לחסום את הפעולה ולהציג הודעה כללית:
      "אין לך הרשאה לבצע פעולה זו."
      
      5. לא להציג למשתמשים רגילים פרטים פנימיים כמו רשימת המיילים המאושרים, שמות משתנים, או הסבר טכני על מנגנון ההרשאות.
      
      6. לוודא שכל אזורי הניהול מוגנים גם ברמת הניווט/הראוטים וגם ברמת הפעולות עצמן, כדי שלא יהיה אפשר להגיע לפעולה רגישה דרך קישור ישיר או קריאה ידנית.
      
      7. נא לעבור על כל הקוד בפרויקט ולמצוא את כל המקומות שבהם מתבצעת בדיקת הרשאות, ולאבטח את כולם לפי המנגנון הכפול הזה.
      
      8. אחרי התיקון, נא להסביר לי בקצרה:
      - אילו קבצים שינית
      - אילו תפקידים קיימים במערכת
      - היכן נמצאות רשימות המיילים המאושרות
      - איך מוסיפים מנהל/עורך חדש בצורה בטוחה
      
      חשוב:
      המטרה היא שלא תהיה הסתמכות על הרשאה שמגיעה רק מהלקוח. כל תפקיד רגיש חייב להיבדק מול כתובת מייל מאושרת מראש בנוסף לשדה התפקיד.
      

      מקווה שעזרתי 🙏

      ע"ה דכו"עע מנותק
      ע"ה דכו"עע מנותק
      ע"ה דכו"ע
      כתב נערך לאחרונה על ידי
      #2

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

      אברהם גלסרא תגובה 1 תגובה אחרונה
      1
      • ע"ה דכו"עע ע"ה דכו"ע

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

        אברהם גלסרא מחובר
        אברהם גלסרא מחובר
        אברהם גלסר
        מדריכים
        כתב נערך לאחרונה על ידי אברהם גלסר
        #3

        @ע-ה-דכו-ע מאיפה יהיה לך את המייל של המנהל?
        הפתרון הפשוט זה מה שאני כתבתי.
        באמת אם רוצים משהו מעמיק צריך לוודא טוב שאין אימות של שום דבר בצד לקוח.
        אבל אתה צודק.

        ע"ה דכו"עע תגובה 1 תגובה אחרונה
        0
        • אברהם גלסרא אברהם גלסר

          @ע-ה-דכו-ע מאיפה יהיה לך את המייל של המנהל?
          הפתרון הפשוט זה מה שאני כתבתי.
          באמת אם רוצים משהו מעמיק צריך לוודא טוב שאין אימות של שום דבר בצד לקוח.
          אבל אתה צודק.

          ע"ה דכו"עע מנותק
          ע"ה דכו"עע מנותק
          ע"ה דכו"ע
          כתב נערך לאחרונה על ידי
          #4

          @אברהם-גלסר כתב:

          @ע-ה-דכו-ע מאיפה יהיה לך את המייל של המנהל?

          נניח אני מכיר אותו, או שהוא הביא כאן קישור בפורום לאתר שהוא בנה, והמייל רשום לו בפרופיל...

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

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

          תגובה 1 תגובה אחרונה
          2

          שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.

          נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.

          בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗

          הרשמה התחברות

          • התחברות

          • אין לך חשבון עדיין? הרשמה

          • התחברו או הירשמו כדי לחפש.
          • פוסט ראשון
            פוסט אחרון
          0
          • חוקי הפורום
          • פופולרי
          • לא נפתר
          • משתמשים
          • חיפוש גוגל בפורום
          • צור קשר