ASP.NET - امنیت

پیاده سازی امنیت در یک سایت دارای جنبه های زیر است:احراز هویت: فرآیند اطمینان از هویت و اصالت کاربر است. ASP.NET به چهار نوع احراز هویت اجازه می دهد:احراز هویت ویندوزاحراز هویت فرم هااحراز هویت گذرنامهاحراز هویت سفارشیمجوز: فرآیند تعریف و تخصیص نقش های خاص به کاربران خاص است.محرمانه بودن: شامل رمزگذاری کانال بین مرورگر مشتری و وب سرور است.یکپارچگی: شامل حفظ یکپارچگی داده ها می شود. به عنوان مثال، پیاده سازی امضای دیجیتال.احراز هویت مبتنی بر فرمبه طور سنتی، احراز هویت مبتنی بر فرم شامل ویرایش فایل web.config و افزودن یک صفحه ورود به سیستم با کد احراز هویت مناسب است.فایل web.config را می توان ویرایش کرد و کدهای زیر را روی آن نوشت:<configuration><system.web> <authentication mode="Forms"> <forms loginUrl ="login.aspx"/> </authentication> <authorization> <deny users="?"/> </authorization></system.web>......</configuration>صفحه login.aspx ذکر شده در قطعه کد بالا می‌تواند کد زیر را در پشت فایل با نام‌های کاربری و رمزهای عبور برای احراز هویت در آن کدگذاری شده داشته باشد.protected bool authenticate(String uname, String pass){ if(uname == "Tom") { if(pass == "tom123") return true; } if(uname == "Dick") { if(pass == "dick123") return true; } if(uname == "Harry") { if(pass == "har123") return true; } return false;}public void OnLogin(Object src, EventArgs e){ if (authenticate(txtuser.Text, txtpwd.Text)) { FormsAuthentication.RedirectFromLoginPage(txtuser.Text, chkrem.Checked); } else { Response.Write("Invalid user name or password"); }}توجه داشته باشید که کلاس FormsAuthentication مسئول فرآیند احراز هویت است.با این حال، ویژوال استودیو به شما این امکان را می‌دهد تا از طریق ابزار مدیریت وب‌سایت، ایجاد کاربر، احراز هویت و مجوز را با سهولت بدون نوشتن هیچ کدی پیاده‌سازی کنید. این ابزار اجازه می دهد تا کاربران و نقش ها را ایجاد کنید.جدای از این، ASP.NET با مجموعه کنترل های ورود به سیستم آماده ارائه می شود که دارای کنترل هایی است که همه کارها را برای شما انجام می دهد.پیاده سازی امنیت مبتنی بر فرمبرای تنظیم احراز هویت مبتنی بر فرم ها، به موارد زیر نیاز دارید:پایگاه داده ای از کاربران برای پشتیبانی از فرآیند احراز هویتوب سایتی که از پایگاه داده استفاده می کندحساب های کاربرینقش هامحدودیت کاربران و فعالیت های گروهییک صفحه پیش فرض برای نمایش وضعیت ورود کاربران و سایر اطلاعات.یک صفحه ورود، که به کاربران اجازه می دهد وارد شوند، رمز عبور را بازیابی کنند یا رمز عبور را تغییر دهندبرای ایجاد کاربران، مراحل زیر را انجام دهید:مرحله (1): Website -> ASP.NET Configuration را برای باز کردن Web Application Administration Tool انتخاب کنید.مرحله (2): روی تب Security کلیک کنید.مرحله (3) : با انتخاب دکمه رادیویی «از اینترنت» نوع احراز هویت را برای «تأیید هویت مبتنی بر فرم‌ها» انتخاب کنید.مرحله (4): برای ایجاد چند کاربر، روی پیوند "ایجاد کاربران" کلیک کنید. اگر قبلاً نقش‌هایی ایجاد کرده‌اید، می‌توانید نقش‌هایی را درست در این مرحله به کاربر اختصاص دهید.مرحله (5): یک وب سایت ایجاد کنید و صفحات زیر را اضافه کنید:Welcome.aspxLogin.aspxCreateAccount.aspxPasswordRecovery.aspxChangePassword.aspxمرحله (6): یک کنترل LoginStatus را در Welcome.aspx از بخش ورود به جعبه ابزار قرار دهید. دارای دو قالب است: LoggedIn و LoggedOut.در قالب LoggedOut لینک ورود و در قالب LoggedIn لینک خروج روی کنترل وجود دارد. می توانید ویژگی های متن ورود و خروج کنترل را از پنجره Properties تغییر دهید.مرحله (7): یک کنترل LoginView را از جعبه ابزار زیر کنترل LoginStatus قرار دهید. در اینجا می توانید متون و سایر کنترل ها (هایپرلینک ها، دکمه ها و غیره) را قرار دهید که بر اساس ورود یا عدم ورود کاربر نمایش داده می شوند.این کنترل دارای دو قالب نمایش است: قالب ناشناس و قالب LoggedIn. هر نما را انتخاب کنید و متنی برای کاربران بنویسید تا برای هر الگو نمایش داده شود. متن باید در قسمتی که قرمز رنگ است قرار گیرد.مرحله (8): کاربران برنامه توسط توسعه دهنده ایجاد می شوند. ممکن است بخواهید به یک بازدیدکننده اجازه دهید یک حساب کاربری ایجاد کند. برای این کار، یک پیوند زیر کنترل LoginView اضافه کنید، که باید به صفحه CreateAccount.aspx پیوند داشته باشد.مرحله (9): یک کنترل CreateUserWizard را در صفحه ایجاد حساب قرار دهید. ویژگی ContinueDestinationPageUrl این کنترل را روی Welcome.aspx قرار دهید.مرحله (10): صفحه ورود را ایجاد کنید. یک کنترل ورود در صفحه قرار دهید. کنترل LoginStatus به طور خودکار به Login.aspx پیوند می یابد. برای تغییر این پیش فرض، تغییرات زیر را در فایل web.config انجام دهید.به عنوان مثال، اگر می خواهید صفحه ورود خود را به عنوان signup.aspx نامگذاری کنید، خطوط زیر را به بخش <authentication> web.config اضافه کنید:<configuration> <system.web> <authentication mode="Forms"> <forms loginUrl ="signup.aspx" defaultUrl = â€œWelcome.aspxâ€ /> </authentication> </system.web></configuration>مرحله (11): کاربران اغلب رمزهای عبور را فراموش می کنند. کنترل PasswordRecovery به کاربر کمک می کند تا به حساب کاربری دسترسی پیدا کند. کنترل ورود را انتخاب کنید. تگ هوشمند آن را باز کنید و روی «تبدیل به الگو» کلیک کنید.رابط کاربری کنترل را سفارشی کنید تا یک کنترل هایپرلینک زیر دکمه ورود قرار دهید، که باید به PassWordRecovery.aspx پیوند داشته باشد.مرحله (12): یک کنترل بازیابی رمز عبور را در صفحه بازیابی رمز عبور قرار دهید. این کنترل به یک سرور ایمیل برای ارسال رمزهای عبور به کاربران نیاز دارد.مرحله (13): پیوندی به صفحه ChangePassword.aspx در قالب LoggedIn کنترل LoginView در Welcome.aspx ایجاد کنید.مرحله (14): یک کنترل ChangePassword را در صفحه تغییر رمز عبور قرار دهید. این کنترل نیز دارای دو نمای است.اکنون برنامه را اجرا کنید و عملیات امنیتی مختلف را مشاهده کنید.برای ایجاد نقش ها، به Web Application Administration Tools برگردید و روی تب Security کلیک کنید. روی "ایجاد نقش" کلیک کنید و چند نقش برای برنامه ایجاد کنید.روی پیوند "مدیریت کاربران" کلیک کنید و نقش هایی را به کاربران اختصاص دهید.احراز هویت IIS: SSLلایه سوکت امن یا SSL پروتکلی است که برای اطمینان از اتصال ایمن استفاده می شود. با فعال بودن SSL، مرورگر تمام داده های ارسال شده به سرور را رمزگذاری می کند و تمام داده های دریافتی از سرور را رمزگشایی می کند. در همان زمان، سرور تمام داده ها را به و از مرورگر رمزگذاری و رمزگشایی می کند.URL برای اتصال ایمن با HTTPS به جای HTTP شروع می شود. یک قفل کوچک توسط یک مرورگر با استفاده از یک اتصال ایمن نمایش داده می شود. هنگامی که یک مرورگر تلاش اولیه ای برای برقراری ارتباط با یک سرور از طریق یک اتصال امن با استفاده از SSL انجام می دهد، سرور با ارسال گواهی دیجیتال خود، خود را احراز هویت می کند.برای استفاده از SSL، باید یک گواهی امن دیجیتالی از یک مرجع معتبر صدور گواهینامه (CA) خریداری کنید و آن را در وب سرور نصب کنید. در زیر برخی از مقامات معتبر و معتبر صدور گواهینامه آورده شده است:www.verisign.comwww.geotrust.comwww.thawte.comSSL در تمام مرورگرها و سرورهای اصلی تعبیه شده است. برای فعال کردن SSL، باید گواهی دیجیتال را نصب کنید. قدرت گواهی های دیجیتال مختلف بسته به طول کلید تولید شده در طول رمزگذاری متفاوت است. طول بیشتر، گواهی امن تر است، بنابراین اتصال.شرح قدرت40 بیت توسط اکثر مرورگرها پشتیبانی می شود اما به راحتی قابل شکستن است.56 بیت قوی تر از 40 بیت.128 بیت شکستن بسیار سخت است اما همه مرورگرها از آن پشتیبانی نمی کنند.