כתיבה פתוחה למסד הנתונים באפליקציית Lovable
Lovable בונה אפליקציות React עם Supabase כבקאנד ברירת המחדל, ומפרסם אותן תחת lovable.app או דומיין מותאם.
מה הבעיה
גם כש-RLS דולק, policy רחבה מדי (או policy של INSERT/UPDATE בלי בדיקת בעלות) מאפשרת לכל מבקר לכתוב למסד הנתונים עם המפתח הציבורי.
למה זה מסוכן
תוקף יכול לזייף רשומות, לדרוס נתונים של משתמשים אחרים או למלא את המסד בזבל עד שהאפליקציה קורסת - הכל בלי להתחבר.
איפה זה מתוקן ב-Lovable
סודות שייכים ל-Supabase Edge Function Secrets (או ל-Secrets של Lovable), לעולם לא לקוד שהדפדפן מוריד.
שלבי התיקון
- עבור על כל policy של INSERT/UPDATE/DELETE וודא שיש בה
WITH CHECK (auth.uid() = user_id) - מחק policies שנוצרו "כדי שזה יעבוד" עם
USING (true) - פעולות כתיבה רגישות - העבר ל-Edge Function שרץ עם הרשאות שרת ובודק קלט
ההנחיה להדביק ב-Lovable
העתק את ההנחיה הבאה לכלי שבנה את האפליקציה (באנגלית - כך הכלים עובדים הכי טוב):
Audit every Supabase RLS policy for INSERT/UPDATE/DELETE: remove USING(true) policies and add WITH CHECK (auth.uid() = user_id) so anonymous visitors cannot write.
איך מוודאים שהתיקון עבד
סריקה חוזרת מנסה כתיבת בדיקה לא-הרסנית ומדווחת אם היא עדיין מתקבלת.
עוד בנושא
בדיקה חינם
רוצה לדעת אם האפליקציה שלך חשופה? סרוק בחינם ב-30 שניות וקבל ציון אבטחה + הוראות תיקון.