وصول المستخدم التحقق من حقوق على كائنات قاعدة بيانات معينة أو السجلات

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

سؤال

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

لمنع المستخدم من تعديل documentID على سلسلة استعلام مواقع المعلومات، أقترح أن الإجراء المخزن الذي يحمل وثيقة تأخذ معرف المستخدم كمعلمة للتحقق من حقوق للوثيقة.

وبلدي المطور صديق يوحي بأننا تشغيل إجراء منفصل لتحديد حقوق الوصول إلى المستند في الصفحة في وقت سابق ومجرد تشغيل إجراء للاستيلاء على وثيقة متى يجب أن تظهر الوثيقة.

هل نحن في عداد المفقودين شيء؟ وهو الأكثر كفاءة وآمنة؟ اعتقدت تمرير معرف المستخدم مع DocID إلى استدعاء إجراء واحدة لفحص الحقوق وسحب وكانت الوثيقة حلا أكثر كفاءة.

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

المحلول

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

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

نصائح أخرى

<اقتباس فقرة>   

وأقترح أن الإجراء المخزن   الذي يقوم بتحميل تأخذ الوثيقة   معرف المستخدم كمعلمة للتحقق من صحة   حقوق لهذه الوثيقة.

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

ويجب أن تكون هوية المستخدم متغير جلسة عمل. حق. تمرير documentID في سلسلة استعلام مواقع المعلومات. نعم.

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

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