PDA

View Full Version : مشکلات امنیتی



mohsen_metn
شنبه 09 اردیبهشت 1391, 09:23 صبح
سلام
من یک وب اپلیکیشن برای یک موسسه دولتی نوشته ام که از نظر امنیتی مشکلاتی به ان گرفته اند. لطفا به من کمک کنید
1- اجرای پروژ
ه بر روی https به جای http
من چگونه میتوانم متوجه بشوم که پروژه بر روی httpsاجرا می شود واگر نه چگونه ان را به https منتقل کنم؟

2- مشکل session fixation
گفته اند که برای حل این مشکل باید session id در زمان ورود کاربر تغییر کند. چگونه؟

3- ایجاد یک token امنیتی؟

لطفا کمک کنید

mohsen_metn
شنبه 09 اردیبهشت 1391, 11:15 صبح
هیچ کس کمکی نمیکنه؟
آقای راد لطفا کمک

d_derakhshani
شنبه 09 اردیبهشت 1391, 11:28 صبح
یکم توضیحش طول میکشه. اگه کسی تا بعد ظهر جواب نداد من توضیح کاملش رو براتون میزارم.(در همین محل برای رزرو)

mohsen_metn
شنبه 09 اردیبهشت 1391, 14:45 عصر
یکم توضیحش طول میکشه. اگه کسی تا بعد ظهر جواب نداد من توضیح کاملش رو براتون میزارم.(در همین محل برای رزرو)
دوست عزیز اگه لطف کنید ممنون میشم
خیلی احتیاج دارم

d_derakhshani
یک شنبه 10 اردیبهشت 1391, 17:27 عصر
خوب دوست عزیز برای SSL باید یک certificate رو سرور فعال کنید. بعد https binding معرفی کنید.
تو لینک زیر به صورتی تصویری توضیح داده.
http://learn.iis.net/page.aspx/144/how-to-set-up-ssl-on-iis/
در مورد session fixation هم در پست بعدی میزارم

mohsen_metn
یک شنبه 10 اردیبهشت 1391, 20:24 عصر
خوب دوست عزیز برای SSL باید یک certificate رو سرور فعال کنید. بعد https binding معرفی کنید.
تو لینک زیر به صورتی تصویری توضیح داده.
http://learn.iis.net/page.aspx/144/how-to-set-up-ssl-on-iis/
در مورد session fixation هم در پست بعدی میزارم

ذوست عزیز لینک کار نمیگنه

hamid_shrk
یک شنبه 10 اردیبهشت 1391, 20:30 عصر
ذوست عزیز لینک کار نمیگنه
لینک داده شده هیچ مشکلی نداره و باز میشه !!سایت معروفی هست.

mohsen_metn
دوشنبه 11 اردیبهشت 1391, 14:26 عصر
دوست عزیز d_derakhshani (http://barnamenevis.org/member.php?170559-d_derakhshani) لطفا در مورد session fixation هم راهنمایی کنید

alonemm
دوشنبه 11 اردیبهشت 1391, 14:49 عصر
باسلام:

شما میتونید درخواست پرتکل امن HTTPS رو از هاستینگ مربوطه بگیرید.

برای سوال بعدی هم ID سشن ها به طور تصادفی ایجاد میشند مشکل شما در نحوه بکارگیری هست؟

mohsen_metn
دوشنبه 11 اردیبهشت 1391, 15:04 عصر
باسلام:

شما میتونید درخواست پرتکل امن HTTPS رو از هاستینگ مربوطه بگیرید.

برای سوال بعدی هم ID سشن ها به طور تصادفی ایجاد میشند مشکل شما در نحوه بکارگیری هست؟
سلام
برنامه من به صورت وب اپلیکیشن بر روی یک سرور یک سازمان اجرا می شود
بله دوست عزیز من در مورد نحوه کاربرد مشکل دارم اگه ممکنه نمونه کدی ارائه کنید

d_derakhshani
دوشنبه 11 اردیبهشت 1391, 17:28 عصر
در مورد Session fixation:
وقتی کاربری وارد برنامه ASP.Net میشه یک کوکی به نام ASP.NET_SessionId در سیستم وی ساخته میشه. با خارج شدن از سایت این کوکی باقی می مونه.(البته تا مدتی) در نتیجه میشه این کوکی رو برداست و در سیستم دیگه ای ازش استفاده کرد. در نیتجه کاربر جدید در سیستم دیگه به تمامی اطلاعات کاربر قبلی دسترسی پیدا می کنه.
برای حل این مشکل شما در موقع ورود کاربر یک کوکی و یک سشن هر دو به نام AuthToken بسازید و مقدار هردو رو برابر یک guid یکسان قرار بدید. هر بعد در page_load بررسی کنید اگه این دو null نبودن و مقدار اونها برابر هم باشه.
همچنین می تونید در سشن به جز guid، مقدار IP فرد مورد نظر هم نگه دارید. که در صورتی که درخواست کننده با IP متفاوت با session جاری وارد شده متوجه بشید که session hijacking رخ داده
موقع خروج هم کد زیر رو بنویسید:

Session.Clear(); Session.Abandon(); Session.RemoveAll(); if (Request.Cookies["ASP.NET_SessionId"] != null) { Response.Cookies["ASP.NET_SessionId"].Value = string.Empty; Response.Cookies["ASP.NET_SessionId"].Expires = DateTime.Now.AddMonths(-20); } if (Request.Cookies["AuthToken"] != null) { Response.Cookies["AuthToken"].Value = string.Empty; Response.Cookies["AuthToken"].Expires = DateTime.Now.AddMonths(-20); }

ببخشید که خیلی مفید مختصر گفتم. وقت زیادی نداشتم

mohsen_metn
دوشنبه 11 اردیبهشت 1391, 21:23 عصر
با تشکر فراوان از همه دوستان بخصوص d_derakhshani (http://barnamenevis.org/member.php?170559-d_derakhshani)
فقط یه سوال دیگه داشتم
یه چیز دیگه که تازگی ازم خواسته شده اینه که ( کوکی شامل شنایه نشست کاربران بایستی دارای پرجم ّFlag Secure باشه) من راستش هرچی فکر کردم متوجه موضوع نشدم اگه در این مورد نیز راهنمایی کنید ممنون میشم

hamid_shrk
دوشنبه 11 اردیبهشت 1391, 21:58 عصر
flag secure رو باید اینجوری مقدار بدید :


HttpCookie cookie = new HttpCookie('name');
cookie.Secure = True;
cookie.Value = 'Value';

dorparasti
دوشنبه 11 اردیبهشت 1391, 23:17 عصر
وقتی کاربری وارد برنامه ASP.Net میشه یک کوکی به نام ASP.NET_SessionId در سیستم وی ساخته میشه. با خارج شدن از سایت این کوکی باقی می مونه.(البته تا مدتی) در نتیجه میشه این کوکی رو برداست و در سیستم دیگه ای ازش استفاده کرد. در نیتجه کاربر جدید در سیستم دیگه به تمامی اطلاعات کاربر قبلی دسترسی پیدا می کنه.


یعنی حتی بعد از اینکه کاربر با استفاده از لینک Logout که کنترل login status نشون میده ، از سایت خارج بشه بازم این کوکی باقی می مونه و اطلاعات کاربر لاگین شده درش وجود داره ( حتی برای یک مدت محدود ) ؟

d_derakhshani
سه شنبه 12 اردیبهشت 1391, 10:00 صبح
یعنی حتی بعد از اینکه کاربر با استفاده از لینک Logout که کنترل login status نشون میده ، از سایت خارج بشه بازم این کوکی باقی می مونه و اطلاعات کاربر لاگین شده درش وجود داره ( حتی برای یک مدت محدود ) ؟
ابتدا بگم کوکی ASP.NET_SessionId مربوط به کاربر لوگین شده نیست(Authenticate شده) بلکه هر کاربر که وارد سایت شما میشه برای اینکه از بقیه تمیز داده بشه توسط این کوکی شناسایی میشه. چه شما سیستم Authentication داشته باشید چه نداشته باشید. دقت کنید که اکثر کاربرا صرفا مرورگر خودشون رو می بندند و logout نمی کنند(اگه همچین دکمه ای داشته باشید) در نتیجه این کوکی باقی میمونه. در ضمن اگر کدهای گفته شده برای پاک کردن کوکی مورد نظر رو در کلید logout تو ننویسید باز هم کوکی سرجاشه

mohsen_metn
سه شنبه 12 اردیبهشت 1391, 14:04 عصر
لطفا در مورد https binding در iis 6.0 توضیح بدهید

mohsen_metn
چهارشنبه 13 اردیبهشت 1391, 00:16 صبح
بعد از فعال کردن ssl من در page_load فرم ها کدی نوشتم به صورت زیر :


If (Request.Url.Scheme = "http") Then

Response.Redirect(Request.Url.ToString.Replace(
"http", "https"))


EndIf


اما چه در حالت debug و چه پس از پابلیش خطا می دهد



Server Application Unavailable


The web application you are attempting to access on this web server is currently unavailable. Please hit the "Refresh" button in your web browser to retry your request.

Administrator Note:
An error message detailing the cause of this specific request failure can be found in the application event log of the web server. Please review this log entry to discover what caused this error to occur.

mohsen_metn
چهارشنبه 13 اردیبهشت 1391, 11:29 صبح
بعد از فعال کردن ssl من در page_load فرم ها کدی نوشتم به صورت زیر :


If (Request.Url.Scheme = "http") Then

Response.Redirect(Request.Url.ToString.Replace(
"http", "https"))


EndIf


اما چه در حالت debug و چه پس از پابلیش خطا می دهد



Server Application Unavailable


The web application you are attempting to access on this web server is currently unavailable. Please hit the "Refresh" button in your web browser to retry your request.

Administrator Note:
An error message detailing the cause of this specific request failure can be found in the application event log of the web server. Please review this log entry to discover what caused this error to occur.


لطفا کمک کنید