PDA

View Full Version : امنیت و سطح دسترسی



gh_fereydonpoor
پنج شنبه 01 اردیبهشت 1384, 16:11 عصر
سلام به همه دوستان
من می خواهم که سطح دسترسی به ایتم های منو برای کاربران تعریف کنم آیا کسی تا کنون این کار رو انجام داده است ؟
هر کس اطلاعاتی داره بیاد بالا و صحبت کنیم.
مرسی ممنون

gh_fereydonpoor
پنج شنبه 01 اردیبهشت 1384, 16:16 عصر
من خودم می خواهم از یک روش استفاده کنم
روش من این است که به هر ایتم یک عدد بر پایه 2 یعنی (1و2و4و8و16و32و....)
نسبت داده به هریک از این اعداد Mask گفته و حال اگر کاربری باید به منوی 1و4 دسترسی پیدا کند عدد 5 را که از رابطه 1 or 4 است را برای اوذخیره می کنم و برای متوجه شدن اینکه آیا کاربر به این منو دسترسی دارد یا نه
عدد او را با Mask آن منو And کرده اگر جواب خود Mask شد یعنی می تواند
مشکل این روش این است که تا 62 منو را بیشتر نمی تواند پشتیبانی کند زیرا که بزرگترین نوع در vb همان Decimal است که بیشتر 2^62 را قبول نمی کند
حال شما نظری دارید؟

bashir_nashi
جمعه 02 اردیبهشت 1384, 09:17 صبح
سلام.
من برای یه نرم افزار فروش این کارو کردم ولی از این روش مافوق طبیعه شما استفاده نکردم.
با توجه به سطح دسترسی کاربر به اطلاعات که مدیر سیستم تعیین می کند (این اطلاعات در یک فایل یا در پایگاه داده ذخیره می شه) هنگام بالا آمدن برنامه بوسیله هر کاربر منو هایی که به آنها نباید دسترسی داشته باشد غیر فعال یا حذف می شود.

hamed_bostan
جمعه 02 اردیبهشت 1384, 09:36 صبح
سلام
اگه تعداد منو ها کم باشه می تونی داخل بانکت یه سری حالت استاندارد تعریف کنی و هر یوزری که log in می کنه یکیس از این حالت ها از قبل بهش نسبت داده شده باشه و بعد از روی اینکه کدوم حالت دسترسی رو داره منو ها رو غیر فعال یا visibel=false قرار بدی اما اگه تعداد منو هات زیاده چاره ای نداری جز اینکه در هنگام تعریف کاربر جدید برای سیستم خودت از تعریف کننده دسترسی های خاص یوزر جدید رو بگیری و داخل بانک خودت مقابل نام کاربی یا ... یوزر ذخیره کنی که هر بار یوزر login کردد با توجه به دسترسی هاش اون رو از داشتن بعضی امکانات محروم کنی . این یادت نره که روش دوم مستلزم اینه که در مقابل هر کاربر خود به تعداد منو ها فیلد تعریف کنی که کار ساده و عاقلانه ای نیست ÷س بهتره از حالت های پیش بینی شده و توسط relation استفاده کنی.

gh_fereydonpoor
جمعه 02 اردیبهشت 1384, 21:29 عصر
سلام
حامد جان روش دوم که اصلا روش مناسبی نیست چون اگر 120 تا منو داشته باشی دیگه بانک که هیچی داقون می شی
روش اول هم که روش منتطقی است ولی برای پروژه های کوچک برای پروژه های بزرگ که قرار سطح دسترسی را خود شان تعریف و گروههای کاری تعریف کنند اصلا منتطقی نیست حال روش که بالا اشاره کردم بد نیست ولی برای فقط 62 منو آیا روش دیگری به نظر شما می رسد.
مرسی
یاعلی

gh_fereydonpoor
جمعه 02 اردیبهشت 1384, 21:31 عصر
سلام bashir_nashi جان
مرسی از پیامت
خوب روشت چی بوده به تعداد منو ها فیلد تعریف کردی ؟
یا کار دیگه ای؟
مرسی ممنون

h_rezaei
جمعه 02 اردیبهشت 1384, 21:57 عصر
چرا از امکانات SQL Sever استفاده نمیکنید؟

bashir_nashi
شنبه 03 اردیبهشت 1384, 08:06 صبح
سلام bashir_nashi جان
مرسی از پیامت
خوب روشت چی بوده به تعداد منو ها فیلد تعریف کردی ؟
یا کار دیگه ای؟
من همون طور که گفتم اطلاعات مربوط به سطح دسترسی کاربران رو برای جلوگیری از وسعت بی معنی بانک تو فایل ذخیره کردم نه تو بانک .
می تونی برای هر کاربر یه فایل بسازی و یا اینکه اطلاعات تمام کاربران رو تو یه فایل ذخیره کنی .
البته باید یادت باشه که این فایل یا فایلها دور از دسترس کودکان قرار بگیره :mrgreen: :mrgreen:

gh_fereydonpoor
شنبه 03 اردیبهشت 1384, 13:12 عصر
سلام مرسی
ولی من مشکلی روی روش و جای ذخیره سازی ندارم بلکه دنبال یک الگوریتم خوب برای رمز نگاری و ذبره بی محدودیت و بازبابی ساده می گردم
مرسی یا علی

bashir_nashi
یک شنبه 04 اردیبهشت 1384, 08:27 صبح
فکر نکنم کار دیگه ای بتونی انجام بدی. :گیج:
بالاخره یا باید از چند حالت پیش فرض و ثابت استفاده کنی و یا برای هر کاربر دسترسی خاص خودش که سطح این دسترسی نیز باید در جایی ذخیره شود .

Mohammad .net
یک شنبه 18 اردیبهشت 1384, 17:21 عصر
با سلام

11100010001000000000001110000001000000000001010000 00000000001111

با استفاده از مقادیر مشابه مقدار بالا (String) برای هر کاربر می توانید 65535 منو :sunglass: را مدیریت کنید

هر کراکتر برای یک منو ( 1 دسترسی - 0 عدم دسترسی )

gh_fereydonpoor
یک شنبه 18 اردیبهشت 1384, 19:07 عصر
بله ولی منو های ما هیج معلوم نیست که چند لایه درون بروند پس از این روش شما فقط می توان 62 منو را می توان منیج کرد. چون And و Or فقط تا 64 بیت رو جواب می دهند و این روش نامش Mask است
مرسی ممنون

Mohammad .net
دوشنبه 19 اردیبهشت 1384, 09:20 صبح
فکر کنم منظور من رو متوجه نشدید.

- برای هر کاربر یک رشته 0و 1 در نظر میگیریم . طول رشته به تعداد آیتم های منو می باشد.
- در هنگام تعریف سطح دسترسی کاربر این 0 و 1 ها را تنظیم می کنیم . ( دسترسی 1 ، عدم دسترسی 0 )
- در هنگام ورود کاربر به سیستم رشته مربوط به او را با توابع ( substring و ... ) تحلیل می کنیم و دسترسی کاربر را سِت می کنیم.
-...

این روش از اصول روش DataBase استفاده می کند. که دوستان قبلاً اشاره کردند. این رشته می تواند در یک فیلد ذخیره شود.
به نظر من بهتر است ( و معمولاً اینطور است ) که کاربران بسته به وظیفه ای که دارند به منوهای گروه بندی شده بر اساس کاربرد و امنیت دسترسی داشته باشند.

با تشکر

rezaei manesh
دوشنبه 19 اردیبهشت 1384, 13:07 عصر
سلام
می تونی برای هر ایتم منو یه رکورد تعریف کنی چه نیازی به فیلد هست
من این کار رو کردم و جواب هم داده
:موفق:

rezaei manesh
دوشنبه 19 اردیبهشت 1384, 14:03 عصر
سلام
می تونی برای هر ایتم منو یه رکورد تعریف کنی چه نیازی به فیلد هست
من این کار رو کردم و جواب هم داده
:موفق:

gh_fereydonpoor
دوشنبه 19 اردیبهشت 1384, 16:28 عصر
سلام بله
اون وقت یک Table برای هر منو و چندمین عدد بودن لازم است درسته چون منوها قابل افزایش هستند.
مرسی یا علی