ورود

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



kahkeshane2012
پنج شنبه 20 آذر 1393, 13:14 عصر
سلام. دوستان من برای ورود دو تا جدول دارم تحت عنوان role & user که رول های متفاوتی داریم مثلا کاربر که فقط حق ویرایش پروفایل داره یا کمیته انضباطی که مثلا حق بلاک کردن کاربران داره یا هیت علمی ......... که رول ها زیاد هستن و سطح دسترسی ها متفاوت, من برا ورود دستور if else به ذهنم خطور میکنه مثلا اگر ادمین بود ریدایرکت کن به این صفحه ........
اما به نظرم اصلا امنیتی نداره و بهینه نیست :(
دوستان امکانش هست که نظره خودتون رو اعلام کنید؟؟؟
با تشکر فراوان.

kahkeshane2012
پنج شنبه 20 آذر 1393, 18:37 عصر
هیچ کس هیچ نظری نداره :(

چند جای دیدم که امدن مثلا برای عملیات جستجو حذف به روزرسانی ثبت یک جدول در نظر گرفتن و از نوع bit در نظر گرفتن مثلا اینکه اگر یک باشه دسترسی داره اگر صفر باشه دسترسی نداره این چطور روشیه؟؟؟ چرا همین که سوال یکمی به سمت امنیت پیش میره یا تخصیصی تر میشه هیچ کس جوابی نمیده :(
البته من خودم توی asp میامدم از membership خوده دات نت استفاده میکردم و سطح دسترسی ها خیلی خوب ویزادی داده میشد اما این بار میخوام متفاوت عمل کنم!!!

TeacherMath
پنج شنبه 20 آذر 1393, 20:59 عصر
:لبخند::قهقهه: مدیر پست منو حذف کن.

kahkeshane2012
پنج شنبه 20 آذر 1393, 22:44 عصر
نه چرخ که هست عرض کردم قبلا از ممبرشیپ دات نت استفاده میکردم اما اینبار میخوام که متفاوت باشه و نظر را راجع به ایف و الس پرسیدم !!!!!!!!!!!!!!!!! راه حل که نمیخوام نظر میخوام اینکه امنیت if else چقد آیا کدنویسی ضعیفی؟!؟!؟!؟!؟!؟!؟!؟!؟!؟!؟!؟!؟!

TeacherMath
جمعه 21 آذر 1393, 00:00 صبح
امکان حذف پست نیست!:لبخند::قهقهه:

kahkeshane2012
جمعه 21 آذر 1393, 00:10 صبح
منظورم از امنیت امکان هک کردن سایت که هکر میاد به جای اینکه مثلا نام کاربری رو وارد کنه یه قطعه کد مینویسه توی اون تکس باکست و به سایت تزریق میکنه و خیلی راحت مثله آب خوردن به عنوان مدیر وارد سایت شما میشه و خراب کاری های لازم انجام میده که خودش مبحث خیلی کسترده و مهمی هست. این قطعه کدهای که ما مینویسم در واقع بچه بازی به نوعی خیلی راحت میشه خرابکاری کرد :(
مثلا یه نمونه اش که رمزنگاری پسورد که من خودم پارسال یه نرم افزار پیدا کردم که خیلی راحت رمز گشایی میکرد تا برسه به هکر که دیگه برا اون بچه بازی.....

جامعه ی برنامه نویس یه جواب درست حسابی یکی بده دیگه خب :(

TeacherMath
جمعه 21 آذر 1393, 00:27 صبح
:قهقهه::لبخند::لبخند:

kahkeshane2012
جمعه 21 آذر 1393, 00:31 صبح
انتظار دارم یکی که سالهاست با این چیزا دست و پنجه نرم میکنه الان زکات علمشا بده :چشمک:

hadi0x7c7
جمعه 21 آذر 1393, 02:06 صبح
سلام. دوستان من برای ورود دو تا جدول دارم تحت عنوان role & user که رول های متفاوتی داریم مثلا کاربر که فقط حق ویرایش پروفایل داره یا کمیته انضباطی که مثلا حق بلاک کردن کاربران داره یا هیت علمی ......... که رول ها زیاد هستن و سطح دسترسی ها متفاوت, من برا ورود دستور if else به ذهنم خطور میکنه مثلا اگر ادمین بود ریدایرکت کن به این صفحه ........
اما به نظرم اصلا امنیتی نداره و بهینه نیست :(
دوستان امکانش هست که نظره خودتون رو اعلام کنید؟؟؟
با تشکر فراوان.
فیلتر Authorize دوای درد شماست!!! در واقع همه if else ها رو قبل از اجرا شدن action یا controller میاد واستون اعمال میکنه، حالا سوال شما اینه که چطور میشه از این فیلتر با جدول های خودمون استفاده کنیم؟ اینم توی سایت dotnettips توضیح داده شده. یه سرچ کوجولو.:لبخندساده:

kahkeshane2012
جمعه 21 آذر 1393, 12:54 عصر
ممنونم از توجهتون؛ با Authorize کمی آشنا هستم ینی اعمال کردن همین کافیت میکنه؟!؟!؟

hadi0x7c7
جمعه 21 آذر 1393, 16:13 عصر
بله، فیلتر های امنیتی رو یه مطالعه بیشتر انجام بدید، می فهمیدکه هدف این فیلترا، کم کردن حجم کد نویسی هستش.

kahkeshane2012
یک شنبه 23 آذر 1393, 17:13 عصر
دو تا سوال برای بنده پیش آمده اول اینکه توی بیشتر جاهای که من باهاشون مواجه شدم البته توی asp.net یا C#‎‎‎‎‎‎‎‎‎ ما یه جدول مثلا نامPermission ایجاد میکنیم و سطح دسترسی رو معین میکنیم (مثلا حق ایجاد گروه حق درج اخبار .......) اما اینجا (منظورم mvc) به نظرم با وجود فیلتر Authorize دیگه معنا مفهموم نداره ینی همین جدول یوزر و رول کافی هست؟؟؟ دیگه نیازی به تعریف کردن جدول Permission نیست؛ درسته آیا مهندسین؟؟؟؟؟؟؟؟؟؟؟؟

سوال بعدی اینکه ما همیشه قوانین نرمال سازی رو رعایت میکردیم مثلا اینکه برای ارتباط Role & User یک جدول میانه ایجاد میکردیم مثلا با نام RolesInUsers که دارای فیلدهای userid & roleId ؛ حالا سوال اینه اینجا هم همین قوانین بهتره که رعایت بشه؟؟؟

kahkeshane2012
سه شنبه 25 آذر 1393, 10:45 صبح
باور کنید از بین 200 نفری که تا الان بازید کردن اگه راضی باشم یکی نظر بده؛ فقط ضمن بازدید این پستا ایجاد کردم :عصبانی++:

سوداگر
یک شنبه 30 آذر 1393, 13:24 عصر
باور کنید از بین 200 نفری که تا الان بازید کردن اگه راضی باشم یکی نظر بده؛ فقط ضمن بازدید این پستا ایجاد کردم :عصبانی++:

OFF Topic :خجالت:

یکی از دلایلی که رفتم سمت PHP با وجودی که #C رو بلد بودم لطف دوستان PHP کار بود و بس...


اما به نظرم اصلا امنیتی نداره و بهینه نیست

همینجوری که نمیشه گفت امنیت نداره و ... باید با دلیل بگید که امنیت نداره. چه دلیلی هست که میگید امنیت نداره؟!
مثلاً شما میفرمایید:

اگر ادمین بود ریدایرکت کن به این صفحه ........
اگه اون آدرس ریدایرکت شده رو یه کاربر دیگه توی مرورگر وارد کنه سطح دسترسی admin پیدا میکنه؟؟؟!

r4hgozar
یک شنبه 30 آذر 1393, 14:53 عصر
سلام.
من دقیقا بصورت تخصصی روی اینها کار نکردم.
اما فکر می کنم شما برای این کار باید یه customauthorize برای خودتون بسازید.
معمولا سایت ها بر عکس ویندوز این کار رو نمی کنن و سطح دسترسی می زارن. حتی وردپرس و جوملا هم این کار رو انجام ندادن و فقط چند سطح دسترسی گذاشتن.
موفق باشید

r4hgozar
یک شنبه 30 آذر 1393, 14:55 عصر
OFF Topic :خجالت:

یکی از دلایلی که رفتم سمت PHP با وجودی که #C رو بلد بودم لطف دوستان PHP کار بود و بس...

دوست عزیز PHP کار ها خیلی بیشتر هستند و کد های آماده براشون خیلی بیشتره و framwork های آماده که استفاده می کنن. نه مثل ما برنامه نویس های asp , مخصوصا asp mvc که بیشتر کارها رو باید خودمون انجام بدیم.
موفق باشید

kahkeshane2012
یک شنبه 30 آذر 1393, 18:40 عصر
سلام ؛ ممنونم از توجهتون ,جناب سوداگر فکر کنم تایپیکم به اندازه ی کافی گویا هست و مطئنا با یه ایف و الس امنیت سایت ما تضمین نمیشه..... و اگر به نتیجه درست رسیده باشم چرای ایجاد ایجاد نمیشد!!!!!!!!
منم در گذشته با php کار کردم و فعلا باهاش کاری ندارم؛ و در مورد asp.net mvc سوال مطرح کردم :(

hadi0x7c7
دوشنبه 01 دی 1393, 13:55 عصر
بستگی داره به اینکه بین کاربر و نقش خودتون بخواید چه رابطه ای برقرار باشه، اگه هر شخص فقط یک نقش داشته باشه که میشه جدول 1 به n، اگر نه میشه همون n -m که یه جدول میانی وجود داره، البته توی mvc چون همه چیز code first هست، ما اصلا نگران دیتابیس نیستیم، اینجا (http://www.dotnettips.info/post/1937/%D8%A7%D8%B9%D9%85%D8%A7%D9%84-%D8%AA%D8%B2%D8%B1%DB%8C%D9%82-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%DA%AF%DB%8C%E2%80%8 C%D9%87%D8%A7-%D8%A8%D9%87-%D9%85%D8%AB%D8%A7%D9%84-%D8%B1%D8%B3%D9%85%DB%8C-asp-net-identity)هم یک مقاله خوب واسه امنیت گفته شده.
در کل شما تفکر mvc ندارید گویا :چشمک:
----------------------------------------------------------
یه چیز دیگه هم هست به نام claim based authorization فکر کنم، این شاید پاسخ شما باشه، خودم هم دقیق بلد نیستم.

kahkeshane2012
دوشنبه 01 دی 1393, 14:09 عصر
من کد فرست کار کردم اما در حاله حاضر دارم dbfirst کار میکنم یا بهتره بگم یاد میگیرم؛ اینه که سوال پرسیدم و جدول خودم دستی ایجاد کردم و برای اینکه قوانین نرمال سازی رعایت بشه.... ایا نیازی هست یا خیر که میدونیم بستگی به تحلیل خودمون داره ؛خاستم تحلیل درست و دقیق حساب شده و بدون افزونگی دیتا ......
الان اینجا دقیقا کجاست؟!؟!؟

hadi0x7c7
دوشنبه 01 دی 1393, 17:55 عصر
این حرفی که شما میزنی، ربطی به نرمال سازی به نظر من نداره، اگه چند به چند باشه، باید یه جدول اضافی بگذاریم، اگرنه که همون دو جدول کفایت میکنه.

kahkeshane2012
دوشنبه 01 دی 1393, 18:04 عصر
ممنونم از همراهی همه ی دوستان.
موفق باشید.