PDA

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



araelectronic@ymail.com
جمعه 01 بهمن 1389, 20:41 عصر
سلام
اول باید بگم که من در زمینه برنامه های تحت وب مبتدی هستم و از اینکه سوالات خیلی ساده می پرسم عذرخواهی میکنم .
من در سایت کلی گشتم و تاپیکهای مختلفی رادیدم ولی اکثرا در مورد وبسایت هستند و کمتر در زمینه برنامه های تحت وب صحبت شده (شایدم من خیلی پیادم و متوجه نشدم).
به هر حال چند تا سوال داشتم :
فرض کنیم یک برنامه تحت وب داریم که بین مراکز مختلف یک سازمان ارتباط برقرار میکنه که این مراکز در شهرهای مختلف قرار دارند . این برنامه روی سرور (اختصاصی یا هاست یا ..) پیاده شده .
در چنین برنامه ای سطوح دسترسی مختلفی وجود دارند که هرکاربر باید بعد از لاگین کردن منوی مربوط به خود را ببیند و به صفحات خاصی دسترسی داشته باشد .

1 - در چنین شرایطی بهترین راه برای مدیریت رولها چی هست ؟ آیا همون roleprovider خود .net مناسبه ؟
چون بنظر من این روش زمانی قابل استفاده است که تعداد رولها مشخص و محدود باشه یا اینکه برداشت من اشتباه بوده ؟

2- برای ساخت منو با توجه به رولها چیکار باید کرد؟ آیا ذخیره کد آیتمهای منو در دیتابیس و ساخت فایل sitemap برای هر کد رول راه مناسبی هست ؟

3- با توجه به اینکه در چنین سیستمهایی نیاز استکه اطلاعات زیادی بین صفحات ردوبدل بشه از جمله (رول کاربر ، نام و کد کاربر ، نام و کد مرکز و ... ) بهترین ، سبکترین و امنترین راه برای تبادل چنین اطلاعاتی کدام روش هست ؟ با توجه به اینکه کاربران این سیستمها به اندازه وبسایت نیستند ولی اهمیت اطلاعات در آنها بیشتر از وبسایت است ، آیا session میتونه انتخاب مناسبی باشه ؟ (مخصوصا برای انتقال رول کاربر)

4- تا جاییکه من متوجه شدم خود asp.net به ازای هر کاربر یک session میسازه ، حالا میخاستم بدونم آیا این session کا فی هست برای شناسایی کاربر یا اینکه باید session مجزا هم ساخته بشه ؟ مثلا هنگام وارد کردن اطلاعات و یا ... کاربر کنترل بشه .

با تشکر

arta.nasiri
جمعه 01 بهمن 1389, 21:52 عصر
سلام

منم سوال همین بود ! منم اطلاعات کاربر تو وب سایت رو تو کوکی ها نگه میدارم مثل نام کاربری و نقش کاربر تو سایت مثل مدیر یا کاربر معمولی ! آیا نگه داشتن این اطلاعات تو کوکی دارای امنیت هستن ؟ یا برای این کار session خوبه ؟

araelectronic@ymail.com
یک شنبه 03 بهمن 1389, 21:51 عصر
شاید سوالاتم خیلی ابتدایی بود که اساتید جوابی ندادند .
لطفا بگید بهترین راه برای نگهداری رول کاربران در صفحات چی هست ؟

naser2009
دوشنبه 04 بهمن 1389, 08:04 صبح
سلام دوسته من

فکر میکنم راهی به جز session نداشته باشی

کوکی رو هم در مواردی استفاده کنید که در صورتی که کاربر اون ها رو block کرده بود مشکلی تو روند سیستم شما بوجود نیاد.(داده های کم ارزش)

alonemm
سه شنبه 05 بهمن 1389, 19:14 عصر
سلام دوست من:
من كلا با خواندن مطالبي كه گفتيد ميتونم به شما بگم كه شما ميتونيد براي اينكار از MemberShip خود .net براي عمليات لاگين استفاده كنيد.
بعد ميتونيد يك جدول داشته باشيد و كد منو رو داخلش ذخيره كنيد.
يك جدول هم داشته باشيد كه ID كاربر مربوطه و كد منوهايي كه مجوز استفاده ازش رو داره داخلش هست.
حالا يك كلاس براي چك كردن كاربر مربوطه و منوهايي كه ميتونه استفاده كنه رو در روييدادي مثل PageLoad چك كنيد و منوي مربوطه رو نمايش بديد.


موفق باشيد.

araelectronic@ymail.com
جمعه 08 بهمن 1389, 01:35 صبح
ممنون از پاسختون . ول سوال من اینجاس که وقتی از member ship استفاده میشه یکسری رولهایی ساخته میشن که باید در وب کانفیگ از آنها استفاده بشه در حالیکه من میخوام بدونم آیا راهی هست که برای هر رول بطور dynamic مشخص کرد که به چه صفحاتی دسترسی داشته باشه ؟ مثلا اگر دوکاربر داشته باشیم با رولهای متفاوت که قرار هست هرکدام به چند صفحه دسترسی داشته باشن و به یک صفحه مشترک هم دسترسی داشته باشن چطوری میشه انو با membership پیاده کرد ؟؟

با تشکر

Javad.Kashi
جمعه 08 بهمن 1389, 03:32 صبح
سوال من اینجاس که وقتی از member ship استفاده میشه یکسری رولهایی ساخته میشن که باید در وب کانفیگ از آنها استفاده بشه در حالیکه من میخوام بدونم آیا راهی هست که برای هر رول بطور dynamic مشخص کرد که به چه صفحاتی دسترسی داشته باشه ؟ مثلا اگر دوکاربر داشته باشیم با رولهای متفاوت که قرار هست هرکدام به چند صفحه دسترسی داشته باشن و به یک صفحه مشترک هم دسترسی داشته باشن چطوری میشه انو با membership پیاده کرد ؟؟
با تشکر
برای این کار در هر فولدر یاdirectory یک وب کامفیگ کوچولو قرار می دی و در اون سطح دسترسی ها رو مشخص می کنی که برات یک مثال اینجا گذاشتم خودت یه نگاه بهش بکن

در چنین شرایطی بهترین راه برای مدیریت رولها چی هست ؟ آیا همون roleprovider خود .net مناسبه ؟ شما می تونی خودت یه roleprovider بسازید و همه ی role ها رو خودت مدیریت کنی به این صورت که در ابتدا می بایست در دیتابیس یه جدول برای Role ها بسازی بعد roleprovider خود asp.net را در وب کامفیگ اصلی (روت سایت) از کار بندازی بعد یه کلاس بسازی که از roleprovider ارث بری می کنه که در اون شما می بایست نقش ها را مدیریت کنی که در مثال این موضوع را هم گذاشتم .


65650

araelectronic@ymail.com
جمعه 08 بهمن 1389, 16:02 عصر
با تشکر از جوابتون .
پس آیا میشه گفت که rolprovider زمانی کاربرد داره که تعداد رولها مشخص و تا حدودی محدود باشه ؟؟ و عملا وقتی که تعداد صفحات زیاد و وضعیت دسترسی ها پیچیده باشه نمیشه از این روش استفاده کرد .