EitanGuard

RLS כבוי ב-Supabase באפליקציית v0

v0 של Vercel מייצר קומפוננטות ואפליקציות Next.js שנפרסות ל-Vercel.

מה הבעיה

Row Level Security הוא מנגנון ההרשאות של Supabase. כשהוא כבוי על טבלה, כל מי שמחזיק את המפתח הציבורי (anon) - כלומר כל מבקר באתר - יכול לקרוא אותה ישירות.

למה זה מסוכן

המפתח הציבורי מוטמע בקוד שהדפדפן מוריד. בלי RLS זה שקול למסד נתונים פתוח לאינטרנט: רשימות משתמשים, הזמנות ופרטים אישיים נקראים בשאילתה אחת.

איפה זה מתוקן ב-v0

משתני סביבה מוגדרים ב-Vercel (Project Settings > Environment Variables). כל משתנה עם קידומת NEXT_PUBLIC_ נשלח לדפדפן - סודות בלי הקידומת הזו בלבד.

שלבי התיקון

ההנחיה להדביק ב-v0

העתק את ההנחיה הבאה לכלי שבנה את האפליקציה (באנגלית - כך הכלים עובדים הכי טוב):


Enable Row Level Security on every Supabase table and add owner-scoped policies (auth.uid() = user_id). List every table that currently has RLS disabled and fix each one.

איך מוודאים שהתיקון עבד

הרץ סריקה חוזרת - הבדיקה מנסה לקרוא את הטבלאות עם המפתח הציבורי בלבד ומדווחת מה עדיין פתוח.

עוד בנושא

בדיקה חינם

רוצה לדעת אם האפליקציה שלך חשופה? סרוק בחינם ב-30 שניות וקבל ציון אבטחה + הוראות תיקון.

סרוק את האפליקציה שלך בחינם