PDA

View Full Version : یک سوال در مورد امنیت نام کاربری



مهدی رحیم زاده
سه شنبه 28 اردیبهشت 1389, 17:46 عصر
سلام
من وقتی که کاربر وارد سایت میشه و Login می کنه یک Session براش ایجاد می کنم و توی تمامی صفحات بررسی می کنم اگر Session نام کاربری موجود بود ، به کاربر اجازه استفاده از صفحه رو میدادم . اما یکی از دوستام گفت که ممکنه کسی بیاد و یک Session با همین نام ایجاد کنه و اینجوری بتونه به صفحه دسترسی داشته باشه. من برای جلو گیری از این کار اومدم و موقع لود هر صفحه اگر Session موجود بود محتوای اون رو از بانک اطلاعاتی مجددا خوندم ، اگر بود اجازه دسترسی میدم.اما با این کار فشار روی بانک فک کنم که بیشتر میشه و صفحه دیر Load میشه . می خواستم بدونم که اصلا حرف این دوستم درسته ؟اگه آره کار من درسته؟ اگر نه چکار کنم بهتره؟
با تشکر

اوبالیت به بو
سه شنبه 28 اردیبهشت 1389, 17:53 عصر
من این کار می کنم:
برای هر نوع کاربر یک فولدر می سازم و داخلش یه فایل Web.Config می ذارم و Authorization رو ست می کنم.

مهدی رحیم زاده
سه شنبه 28 اردیبهشت 1389, 20:16 عصر
من این کار می کنم:
برای هر نوع کاربر یک فولدر می سازم و داخلش یه فایل Web.Config می ذارم و Authorization رو ست می کنم.
میشه بیشتر توضیح بدین که چطور این کار رو می کنید + مزایاش. سرعت و امنیت با هم برام مهمه.
باتشکر

Alireza_Salehi
سه شنبه 28 اردیبهشت 1389, 20:29 عصر
سلام
من وقتی که کاربر وارد سایت میشه و Login می کنه یک Session براش ایجاد می کنم و توی تمامی صفحات بررسی می کنم اگر Session نام کاربری موجود بود ، به کاربر اجازه استفاده از صفحه رو میدادم . اما یکی از دوستام گفت که ممکنه کسی بیاد و یک Session با همین نام ایجاد کنه و اینجوری بتونه به صفحه دسترسی داشته باشه. من برای جلو گیری از این کار اومدم و موقع لود هر صفحه اگر Session موجود بود محتوای اون رو از بانک اطلاعاتی مجددا خوندم ، اگر بود اجازه دسترسی میدم.اما با این کار فشار روی بانک فک کنم که بیشتر میشه و صفحه دیر Load میشه . می خواستم بدونم که اصلا حرف این دوستم درسته ؟اگه آره کار من درسته؟ اگر نه چکار کنم بهتره؟
با تشکر
http://en.wikipedia.org/wiki/Session_hijacking
http://www.dreamincode.net/forums/topic/61503-guarding-against-session-hijacking-in-aspnet/

مهدی رحیم زاده
چهارشنبه 29 اردیبهشت 1389, 09:31 صبح
در مورد مزایا و معایب روش من کسی نمی خواد چیزی بگه ؟
اصلا این روش چیز خوبیه؟
با تشکر

مهدی رحیم زاده
یک شنبه 02 خرداد 1389, 07:35 صبح
دوستان بهتریم راه کدومه؟
اطلان کنترل های Login خود ASP.Net از چه راهی استفاده می کنن؟

Mostafa_Dindar
یک شنبه 02 خرداد 1389, 09:02 صبح
در مورد مزایا و معایب روش من کسی نمی خواد چیزی بگه ؟
اصلا این روش چیز خوبیه؟
با تشکر
نه روش خيلي بدي هست . اين سوال دهها مرتبه پاسخ داده شده .

دوستان بهتریم راه کدومه؟
اطلان کنترل های Login خود ASP.NET از چه راهی استفاده می کنن؟
1- استفاده از Authorization in WebConfig
2- استفاده از Authorization in WebConfig

Hossein Bazyan
یک شنبه 02 خرداد 1389, 11:55 صبح
سلام
من همون کاری که شما میکنید را انجام میدم اما هر بار از دیتابیس نمیخونم.
یک بار میخونم و کد شده داخل Session میذارم و تا Session هم تموم نشده ازش در تمامی صفحات استفاده میکنم .
در ضمن من روشی برای کد کردن اطلاعات برای خودم نوشته ام که تقریبا خیلی مطمئنه و هر بار هم که متنی رو کد میکنم با دفعه بعدش فرض میکنه ولی در خواندن فرقی نمیکنه
مثلا کلمه bazyan رو دو بار کد میکنم
اولی

bmdhaXlCejNhb2I0

و بار دوم


bjphaHliemRhYmJS

میشه اما اگر دیکد میکنم همان bazyan خروجیش میشه
که در اینحالت میشه با خیال راحت اطلاعات را به session فرستاد و غم دیکدش رو هم نداشته باشیم.

PhoenixNet
یک شنبه 02 خرداد 1389, 16:26 عصر
چه روش های عجیبی دوستان استفاده می کنن.

اگه از دیتابیس مایکروسافت برای کاربران استفاده نمی کنید.

بعد از اینکه اعتبار کاربر سنجیده شد.(به روش خودتون)برای ذخیره نام کاربری رمز نگاری شده.


System.Web.Security.FormsAuthentication.SetAuthCoo kie("PhoenixNet", false);

برای فهمیدن اینکه کاربر معتبر است یا نه


if (HttpContext.Current.User.Identity.IsAuthenticated )
{
//codes
}
else
{
//codes
}

برای خواندن نام کاربری


HttpContext.Current.User.Identity.Name

برای خروج کاربر


System.Web.Security.FormsAuthentication.SignOut();
اینا ساده ترین حالت امنیتی که مایکروسافت ارائه کرده است.
با این روش نام کاربری به صورت اتوماتیک رمزنگاری و بر روی کامپیوتر کاربر ذخیره می شود.