כתיבה פתוחה למסד הנתונים באפליקציית Bolt
Bolt מייצר פרויקטים מלאים (לרוב React/Next עם Supabase) ופריסה נפוצה היא Netlify.
מה הבעיה
גם כש-RLS דולק, policy רחבה מדי (או policy של INSERT/UPDATE בלי בדיקת בעלות) מאפשרת לכל מבקר לכתוב למסד הנתונים עם המפתח הציבורי.
למה זה מסוכן
תוקף יכול לזייף רשומות, לדרוס נתונים של משתמשים אחרים או למלא את המסד בזבל עד שהאפליקציה קורסת - הכל בלי להתחבר.
איפה זה מתוקן ב-Bolt
משתני סביבה מגדירים ב-Netlify (Site settings > Environment variables) וקוראים אותם רק בצד השרת - קידומת VITE_/NEXT_PUBLIC_ הופכת ערך לציבורי.
שלבי התיקון
- עבור על כל policy של INSERT/UPDATE/DELETE וודא שיש בה
WITH CHECK (auth.uid() = user_id) - מחק policies שנוצרו "כדי שזה יעבוד" עם
USING (true) - פעולות כתיבה רגישות - העבר ל-Edge Function שרץ עם הרשאות שרת ובודק קלט
ההנחיה להדביק ב-Bolt
העתק את ההנחיה הבאה לכלי שבנה את האפליקציה (באנגלית - כך הכלים עובדים הכי טוב):
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 שניות וקבל ציון אבטחה + הוראות תיקון.