سؤال

لدي موقع ASP.NET MVC مع تطبيق خاص لإدارة الموقع مضمون مع إذن مدعوم من ASP.NET SQL. أحتاج إلى إضافة تسجيل دخول للموقع العام للسماح للزائرين بالتسجيل للحصول على حساب.

أعتقد أنني يجب أن أقوم بإنشاء سعة تخزين منفصلة تمامًا للموقع العام ، بدلاً من تمديد DB المستخدم الحالي والاعتماد على أدوار لإبقاء المستخدمين العامين خارج المكتب الخلفي. هل هناك أي سبب لعدم القيام بذلك؟

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

المحلول

نعم هنالك. يمكنك عزل قاعدة البيانات الخاصة عن قاعدة البيانات العامة. قم بإنشاء حسابين من مستخدمي قاعدة بيانات 2 ، تأكد من إمكانية الوصول إلى قاعدة بيانات واحدة فقط. ستستخدم التطبيقات العامة والخاصة حسابات مختلفة. ثم قم بإغلاق حسابات قاعدة البيانات للتأكد من أن لديها الحقوق المطلوبة لتطبيق الويب فقط. (لست متأكدًا من قاعدة البيانات التي تستخدمها. إذا كنت تستخدم MS-SQL ، فتأكد من عدم إمكانية الوصول إلى XP_CMDShell ، إذا كنت تحت MySQL ، فتأكد من أن الحساب لا يحتوي على امتيازات الملفات. هناك اعتبارات أخرى ولكن هذا خارج نطاق هذا السؤال.)

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

نصائح أخرى

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

HTH.

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

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