امنیت در ASP.NET

امنیت در ASP.NET

امنیت یکی از بخشهای کلیدی هر نرم افزار است که باید از اولین مراحل پروسه تولید در نظر گرفته شود . در واقع شما باید یک معماری ایمن برای تولید نرم افزار خود انتخاب کنید . با این حال داشتن یک معماری ایمن تنها شرط لازم است و به هیچ وجه کافی نیست .


هنگام کدنویسی لازم است که رهنمون‌های ذیل رو در خاطر داشته باشید :


1- هیچگاه به ورودی‌های کاربر اعتماد نکنید
هر کاربر رو یک دشمن در نظر بگیرید تا اینکه خلاف آن به شما ثابت شود . بنابراین همیشه ورودی‌های کاربر را اعتبار سنجی کنید . کدتون رو طوری بنویسید که تنها داده‌های معتبر رو بپذیرد و لاغیر . در ASP.NET علاوه بر کنترل‌های Validtion که به صورت Client-Side عمل میکنند ، به صورت Server-Side نیز داده‌های ورودی کاربر را Validate کنید ، چون همیشه این امکان هست که در مرورگر کاربر Java-Script غیر فعال کرده باشد و Client-Side Validation عمل نکند .


2-هیچگاه از الحاق یا اتصال رشته‌ها برای ایجاد یک کوئری SQL استفاده نکنید
در واقع انجام دادن اینکار مساوی است با باز گزاشتن راه برای حملات SQL Injection . همیشه از دستورات مبتنی بر پارامتر استفاده کنید مثل Stored Procedure‌ها . هرچند که همه Stored Procedure‌ها در برابر حملات SQL Injection مقاوم نیست . LINQ 2 SQL به خودی خود تا حد بسیار زیادی در برابر SQL Injection مقاوم ست .


3-هیچگاه داده‌های وارد شده توسط کاربر را قبل از اینکه اعتبار سنجی کنید یا encode کنید به صورت مستقیم در صفحه وب به نمایش نگزارید .
کاربر میتواند کدهای جاوااسکریپتی مخرب را از طربق فرم‌های ورودی به وب سایت شما وارد کند و این باعث آسیب پذیری وب سایت شما از طریق حملات XSS یا Cross Site Scripting شود . بنابراین همیشه از متد HttpUtility.HtmlEncode() استفاده کنید .


4-هیچگاه داده‌های حیاتی و مهم را در Hidden field‌ها ذخیره نکنید
Hidden field‌ها براحتی قابل خواندن و تغیر هستند ، کاربر میتواند براحتی با دیدن Source صفحه شما مقدار Hidden field‌ها را بخواند ، آن را تغیر دهید و در فایل ذخیره کند . در این حالت فرد نفوذگر کافی است که فرم ذخیره شده را به سرور ارسال کند . پلاگین یا Add-on‌های هستند که اینکار رو بسیار ساده میکند ، به سادگی ایمیل زدن .


5-هیچگاه داده‌های حیاتی و مهم را در ViewState ذخیره نکنید
ViewState نیز یک مدل دیگر از Hidden field است که مایکروسافت اختصاصا در ASP.NET Web form‌ها استفاده کرده است . مایکروسافت View state رو با ASP.NET عرضه کرد برای اینکه برنامه نویسی وب رو شبیه به برنامه نویسی ویندوز کند و با اینکار خیل عظیمی از برنامه نویسان ویندوز از ASP.NET Web form‌ها استفاده کردند . اگر چه ViewState را نمیتوان به راحتی تغیر داد ولی به راحتی میشود آن را خواند.


6- هنگامی که از ASP.NET Form Authentication استفاده میکنید SSL را فعال کنید .
SSL برای مخفی کردن داده‌ها مهمی مثل کلمه عبور ، شماره کارت اعتباری و … بسیار مهم است . در واقع با ایمن کردن کانال ارتباطی مرورگر و وب سرور ، احتمال نفوذ و شنود داده‌ها توسط نفوذگر را بسیار کم میکنید . نکته جالب اینجاست که SSL در ISS ست میشود و با برنامه نویسی شما هیچ تداخلی نخواهد داشت . تنها در ابتدای آدرسها یک s به انتهای http اضافه میشود


7-از کوکی هایتان محافظت کنید .
همیشه از Authentication Cookie هایتان در زمان استفاده از Form Authentication محافظت کنید و زمانی Time-out را تا جایی که امکان دارد کوتاه ست کنید . و تنها تا اندازه ای طولانی باشد که لازم باشد و نه بیشتر .


8-از SSL استفاده کنید .
به طور کلی اگر برنامه کاربری وب شما داده‌های مهمی را پردازش میکند . کل وبسایت رو با SSL ایمن کنید.

 

منبع : م.دیندار

  • تاریخ و ساعت انتشار :
    19:31       1395/11/12
  • تعداد بازدید :
    95
  • نویسنده :
    رضا ابوالحسنی
  • پسندیده :

کلمات کلیدی

Asp.net

امنیت



برخی از اشتباهات مدیران

مدیران عاملی که همه گزینه‌های ممکن را پیش روی خود نگاه می‌دارند معمولا هیچ‌کدام را اجرا نخواهند کرد. بنگاه‌هایی که همه قسمت‌های بازار را هدف می‌گیرند معمولا دست‌آخر به هیچ‌کدام دست نمی‌یابند. فروشنده‌ای که همه معامله‌ها را تعقیب می‌کند در انتها هیچ معامله‌ای را جوش نخواهد داد.
یک استراتژی کسب‌و‌کار در درجه اول بیانیه‌ای است برای چیزهایی که نباید مشغول‌شان شویم. یک استراتژی مشابه برای زندگی‌تان قرار دهید: چیزهایی را که نباید در زندگی دنبال کنید، روی کاغذ بیاورید. به عبارت دیگر به یک تصمیم حساب‌شده برای آزادکردن برخی امکانات برسید و هر وقت گزینه‌ای مطرح شد آن را با فهرست آنچه که نباید سراغ‌شان بروید و درگیرشان شوید بسنجید. این کار نه‌تنها شما را از به دردسر افتادن حفظ می‌کند، بلکه کلی از زمانتان را برای اندیشیدن آزاد خواهد کرد. یک بار این فکر سخت را به سرانجام برسانید و بعد به‌جای آنکه هر بار که دری گشوده‌شد بنشینید و ذهن‌تان را مشغول کنید، فقط به این لیست مراجعه کنید.