سؤال

وأنا أكتب تطبيق ASP.Net MVC يستخدم مصادقة NTLM، بحيث لا يحتاج المستخدم لتسجيل مع الموقع. إذا كان لدي تعطيل الوصول المجهول، هل يمكنني استخدام User.Identity.Name كمفتاح ملكية في قاعدة البيانات. ما أود القيام به هو أن تكون قادرة على إصدار البحث مثل

from station in db.stations where station.user == username select *;

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

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

المحلول

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

وإليك إشارة للحصول على أفضل الممارسات لتأمين ASP. NET 2.0 ويب. الكثير منها لا يزال ينطبق، ولكن قد تحتاج إلى أن تترجم إلى MVC.

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