تأمين الوثيقة على غرار قواعد البيانات (MongoDb ، CouchDb, RavenDb) العميل (المستعرض) الوصول

StackOverflow https://stackoverflow.com/questions/3091956

سؤال

الوثيقة قواعد البيانات التي تدعم بقية الطراز سلمان على الوصول HTTP يبدو مثاليا للحصول على دعم AJAX-التطبيقات الغنية حيث المتصفح هو إجراء المكالمات مباشرة إلى قاعدة البيانات ، وتجاوز التقليدية ملقم ويب / تطبيق المنطق المكونات.مثال على ذلك قد يكون استرجاع تفضيلات المستخدم مرة واحدة في مصادقة المستخدم.(بي بي سي الصفحة الرئيسية قد تكون خير مثال على ذلك ، قبل أن تتحطم تحت الحمل!)

المشكلة مع هذا السيناريو هو قضية أمن - إذا تم مصادقة المستخدم باستخدام ملقم ويب (على سبيل المثالالأشكال الأساسية المصادقة), كيف هي هذه الهوية ترحيلها إلى الوثيقة ديسيبل.هو الجواب الوحيد على الوكيل جميع الطلبات إلى DB من خلال ملقم ويب على أي حال - أيتأمين الوثيقة DB بحيث لا يوجد الخارجية المباشرة ؟

يبدو أن هذا يجعل معظم معانيها ، هو أسهل للتنفيذ ، ولكن كنت أتساءل إذا كان هناك أي شخص لديه تجربة و / أو المشورة بشأن استخدام الوثيقة dbs في غير البيئة ؟

هل كانت مفيدة؟

المحلول

هذا ربما يختلف في كل ما ذكر.هنا كيف يعمل في CouchDB.

CouchDB يسمح لك لإدارة المستخدمين والأدوار.

يمكنك استخدام validate_doc_update وظيفة في تصميم الوثائق إلى تقييد وثيقة إنشاء/تحديث.على سبيل المثال ، يمكنك كتابة التحقق من صحة أن ينكر الوثيقة التحديث إلى أي شخص ولكن صاحبه.

تقييد الذين يمكن قراءة الوثائق من قاعدة البيانات ، يمكنك تحرير /db_name/_security الوثيقة قائمة المستخدمين أو الأدوار.

ومع ذلك, أنا لا أعتقد أنك يمكن أن تجعل الوصول للقراءة أكثر دقة (أيتتيح للمستخدم قراءة فقط الوثائق التي تم إنشاؤها).

ولتحقيق ذلك ، يجب أن تضع CouchDB خلف الوكيل و استخدام طرق لخدمة وثائق مصادقة المستخدمين.لا يزال يمكنك استخدام CouchDB إدارة المستخدم بهذه الطريقة.الوكيل فقط يخفي إمكانية الوصول المباشر إلى قاعدة البيانات.

للحصول على مزيد من المعلومات ، راجع الأمن نظرة عامة على CouchDB ويكي, ، الأمن الفصل من كتاب الاسترخاء و هذا قصيرة سكرينكست.

نصائح أخرى

حسنًا ، لدي خبرة فقط مع CouchDB ، لكن آمل أن أتمكن من مساعدتك مع ذلك.

لدى CouchDB عملية التحقق من صحة مدمجة ، فأنت تكتب قواعد التحقق من الصحة في JavaScript ، ولديها إمكانية الوصول إلى المجموعة التي يوجد فيها المستخدم الحالي. يتم التعامل مع كل شيء من قبل Couchdb نفسه بشكل أساسي ، ليس عليك أن تهتم بكيفية الحصول على معلومات تسجيل الدخول.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top