מפתח service_role חשוף באפליקציית Replit
Replit Agent בונה ומארח אפליקציות תחת replit.app, לרוב עם שרת Node/Express או Python.
מה הבעיה
מפתח ה-service_role של Supabase עוקף את כל ההרשאות, כולל RLS. כשהוא מגיע לקוד שהדפדפן מוריד - הוא של כל מי שפותח DevTools.
למה זה מסוכן
זו הפרצה החמורה ביותר שאנחנו מוצאים: קריאה, שינוי ומחיקה של כל נתון במסד, בלי שום מנגנון הגנה בדרך.
איפה זה מתוקן ב-Replit
סודות מנהלים בלשונית Secrets של Replit - לא בקבצים בפרויקט, שיכולים להיות ציבוריים ב-Repl משותף.
שלבי התיקון
- סובב את המפתח מיד ב-Supabase (Settings > API > Reset service_role key) - הוא כבר נחשף
- הסר כל שימוש בו מקוד ה-client
- פעולות שדורשות אותו - העבר ל-Edge Function או לשרת, וקרא אותו שם ממשתנה סביבה
ההנחיה להדביק ב-Replit
העתק את ההנחיה הבאה לכלי שבנה את האפליקציה (באנגלית - כך הכלים עובדים הכי טוב):
Find every place the Supabase service_role key is used in client-side code, move those operations to a server-side Edge Function that reads the key from an environment variable, and never ship the key to the browser. I will rotate the key myself.
איך מוודאים שהתיקון עבד
סריקה חוזרת סורקת את ה-JavaScript המוגש ומוודאת שהמפתח החדש לא מופיע בו.
עוד בנושא
בדיקה חינם
רוצה לדעת אם האפליקציה שלך חשופה? סרוק בחינם ב-30 שניות וקבל ציון אבטחה + הוראות תיקון.