Supabase RLS सर्वोत्तम प्रथाएँ
RLS सक्षम करना सिर्फ़ आधा काम है। ढीली या ग़लत नीतियाँ RLS 'चालू' होने पर भी डेटा को उजागर छोड़ देती हैं। ये वे प्रथाएँ हैं जो Supabase रो-लेवल सिक्योरिटी को सचमुच आपके डेटा की रक्षा करवाती हैं।
चरण दर चरण
- 1
डिफ़ॉल्ट रूप से अस्वीकारें, स्पष्ट रूप से अनुमति दें
हर टेबल पर RLS सक्षम करें ताकि एक्सेस डिफ़ॉल्ट रूप से अस्वीकृत रहे, फिर संकीर्ण नीतियाँ जोड़ें। निजी डेटा वाली टेबल पर कभी 'true' / सब-अनुमति नीति इस्तेमाल न करें।
- 2
नीतियों को यूज़र तक दायरे में बाँधें
रो को उनके मालिक तक सीमित करने के लिए auth.uid() इस्तेमाल करें, जैसे USING (auth.uid() = user_id)। हर ऑपरेशन (select/insert/update/delete) के लिए अलग नीतियाँ लिखें और राइट पर WITH CHECK इस्तेमाल करें।
- 3
विशेषाधिकार वृद्धि से बचाव करें
service-role की को सिर्फ़ सर्वर-साइड रखें — यह RLS को बायपास करती है। ऐसे व्यू या SECURITY DEFINER फ़ंक्शन उजागर न करें जो आपकी नीतियों के इर्द-गिर्द से डेटा लीक करें।
- 4
अनाम के रूप में और एक यूज़र के रूप में परीक्षण करें
पुष्टि करें कि अनाम अनुरोध कुछ नहीं लौटाते और एक यूज़र दूसरे यूज़र की रो न पढ़ सके न लिख सके। पुष्टि के लिए मुफ़्त RLS चेकर फिर से चलाएँ।
इसे सिर्फ़ ठीक नहीं, सत्यापित भी कराना चाहते हैं?
इसे ठीक करना पहला क़दम है। ClearedToShip की समीक्षा पुष्टि करती है कि फ़िक्स सचमुच टिकता है और आपको लॉन्च के लिए एक हस्ताक्षरित, बीमित क्लियरेंस देती है। अर्ली एक्सेस में शामिल हों: