अनधिकृत लेखन को रोकने के लिए कॉच डीबी के पास एक तंत्र है।कॉच डीबी - अनधिकृत पढ़ने को रोकें
क्या यह अनधिकृत पढ़ने को भी रोक सकता है?
अनधिकृत लेखन को रोकने के लिए कॉच डीबी के पास एक तंत्र है।कॉच डीबी - अनधिकृत पढ़ने को रोकें
क्या यह अनधिकृत पढ़ने को भी रोक सकता है?
हां, कॉच डीबी अनधिकृत पढ़ने को रोक सकता है। दुर्भाग्य से, यह थोड़ा कम सरल है।
एक गुप्त नीलामी आवेदन की कल्पना करो। आपने $ 20 बोली लगाई और मैंने $ 10 बोली लगाई; एक सोफे दस्तावेज़ में प्रत्येक बोली। सोफे हमें अपने स्वयं के बोली दस्तावेज पढ़ने देता है लेकिन कोई अन्य नहीं। हालांकि, औसत दिखा रहा है एक नक्शा-कम दृश्य है। मैं दृश्य लोड करता हूं और देखता हूं कि औसत $ 15 है, इसलिए मैंने निष्कर्ष निकाला है कि आपकी बोली $ 20 है और मैंने सुरक्षा नीति तोड़ दी है। देखें आउटपुट कुछ या सभी दस्तावेज़ों की जानकारी को रिसाव कर सकता है। दस्तावेज़ स्तर पर सुरक्षा लागू करना संभव नहीं है। यही कारण है कि पढ़ने का उपयोग डेटाबेस स्तर पर है।
मुझे पता है, यह बेकार है। लेकिन यह एकमात्र सही, स्केलेबल उत्तर है।
यह सोफे दर्शन का कारण है कि कई डेटाबेस — प्रति उपयोगकर्ता भी एक (या अधिक!) बनाते हैं। किसी डेटाबेस को पढ़ने की अनुमति डेटाबेस _security
ऑब्जेक्ट के मान में सेट है। (CouchDB ट्रंक में नोट, क्षेत्र readers was renamed to members क्योंकि यह भी निर्दिष्ट करता है जो डीबी के लिए लिख सकते हैं।)
तकनीक इस तरह काम करता है:
_security
ऑब्जेक्ट में उपयोगकर्ता (या उपयोगकर्ता की भूमिका) जोड़ें।validate_doc_update
के साथ कोड साझा कर सकता है।)?filter=my_filter_function
के साथ उपयोगकर्ता डेटाबेस में मास्टर डेटाबेस से प्रतिलिपि बनाएँ।बेशक, यह एक शुद्ध सोफे एप्लिकेशन के लिए है, जहां उपयोगकर्ता सीधे सोफे तक पहुंचते हैं। यदि आपके पास एक मध्यम परत (एमवीसी नियंत्रक, या सिर्फ एक रिवर्स HTTP प्रॉक्सी) है, तो आप उपयोगकर्ता और सोफे के बीच नीति को लागू कर सकते हैं। लेकिन सावधान रहें। उदाहरण के लिए, _show
फ़ंक्शन या _rewrite
नियम किसी उपयोगकर्ता को आपकी नीति के बावजूद दृश्य या दस्तावेज़ लोड करने की अनुमति दे सकता है।
शुभकामनाएं!
धन्यवाद! क्या आप विस्तार कर सकते हैं कि कैसे _show और _rewrite मुझे काट सकता है? साथ ही, मैं दौड़ की परिस्थितियों से कैसे बचूं जैसे कि "किसी को अपरिचित करें -> फोटो अपलोड करें" और 100% सुनिश्चित करें कि असभ्य व्यक्ति उस फ़ोटो को कभी नहीं देख सकता है? – nornagon
ठीक है, मान लीजिए कि आपके पास एक रिवर्स प्रॉक्सी है जो URL पर आधारित प्रति उपयोगकर्ता प्रति दस्तावेज़ तक पहुंच/अस्वीकार करती है। बाद में, आप _list फ़ंक्शन का उपयोग करके एक नई सुविधा जोड़ते हैं और प्रॉक्सी द्वारा सभी _list प्रश्नों की अनुमति है। एक उपयोगकर्ता यह पता लगा सकता है कि दस्तावेज़ों को देखने के लिए _list का उपयोग कैसे करें, उसे नहीं करना चाहिए। इसी तरह, एक _rewrite नियम सामान्य '/ db/doc_id' पथ के बिना दस्तावेज़ देखने का एक तरीका प्रदान कर सकता है। तो आपको * बहुत * यह सुनिश्चित करना होगा कि आपके प्रॉक्सी में कोई छेद नहीं है। – JasonSmith
आपका दूसरा प्रश्न ** निरस्त करने के बारे में अधिक ** ** पढ़ने की पहुंच ** ** पढ़ने की पहुंच से पढ़ने की पहुंच है। मैं आपको एक नया सवाल पूछता हूं ("कोच डीबी सुरक्षा मॉडल में पढ़ने की पहुंच को कैसे रद्द करें")। अगर मैं कर सकता हूं तो मैं एक जवाब पर एक शॉट ले जाऊंगा! – JasonSmith