نمایش نتایج 1 تا 5 از 5

نام تاپیک: سطح امنیت در برنامه های وب

  1. #1
    کاربر دائمی آواتار mmbguide
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    منظومه شمسی
    پست
    1,170

    سطح امنیت در برنامه های وب

    سلام

    شاید این موضوع کمی تکراری باشد ولی قصد دارم حداقل در یک تاپیک درخصوص همه موضوعات ارائه نظر بشه. خودم تازه دارم با ASP.Net MVC کار میکنم.

    میخواستم بدونم سطوح امنیت در برنامه های وب و مخصوصا ASP.NET MVC چطور پیاده سازی میشه. خب بخشی از این اقدام مربوط به احراز هویت (Authentication) و دسترسی کاربر (Authorization) به بخش های مختلف برنامه میشه. تا اینجا مشخص شد که کاربر به چه بخش هایی دسترسی داره. اما ادامه موضوع را بصورت جداگانه مطرح میکنم:


    1. درخصوص Authorize کردن متدها آیا این اقدام را برای متدهایی از نوع JsonResult, Void, int هم اعمال میشه؟ البته این امکان وجود داره ولی برای این نوع از متد های نیز الزامی به انجامش هست؟ درخصوص نوع JsonResult که در دستورات Ajax استفاد میشه من استفاده میکنم تا فقط کاربر وارد شده به برنامه بتونه از اون استفاده کنه.
    2. بجای استفاده از صفت Authorized که عموما استفاده میشه، از روشی که در دروس آموزشی جناب کرامتی یاد گرفتم بررسی متدهای تخصیص داده شده به هر کاربر در ActionFilter هستش که برنامه را در تخصیص دسترسی ها به کاربران بسیار منعطف میکنه و تغییرات در هر لحظه را برای مدیر برنامه اکانپذیر کرده. در واقع قبل اجرای یک متد، ابتدا برنامه بررسی میکنه که متد موجود در Request قبلا به کاربر تخصیص داده شده است یا خیر و در صورتی که تخصیص داده نشده باشه کاربر را به صفحه Access Denied هدایت میکنه.
    3. در مرحله 1 و 2 من تونستم تا حد قبل ملاحظه ای دسترسی به بخش های مختلف برنامه را کنترل کنم.
    4. چه تنظیماتی در Web.Config میتونه انجام بشه که بیشتر شدن سطح امنیت کمک کنه؟ برای مثال متن خطاهای برنامه در زمان Exception در مرورگر به کاربر نمایش داده میشه. اول اینکه تا چه مقدار اطلاعات خطا میتونه بهظعف امنیتی برنامه کمک کنه؟ دوم اینکه چه اقداماتی اساسا در این خصوص انجام میشه. البته در فایل Global میشه در متد Applicatio_Error مدیریت کرد. اما بخش های دیگری هم هست که عموما توجهی نمیشه و نقاط کور امنیت برنامه باشه؟
    5. در یک تاپیک جداگانه موضوعی را سوال کردم که جناب کرامتی پاسخ آن را دادند:
    6. https://barnamenevis.org/showthread....ew%D9%87%D8%A7
    7. مورد شماره 5 که لینک آن در آیتم شماره 6 معرفی شده درخصوص اطلاعاتی هست که در View به کاربر نمایش داده میشه. سوالم این هست که آیا برای تمام اطلاعاتی که توسط کاربر به سرور ارسال میشه آیا میشه برای اون متد از صفت POST استفاده کرد؟ البته که میشه ولی سوالم من درخصوص ضرورت این کار هستش. البته برای اطلاعات یک فرم این کار را انجام میدم. مثلا من متدی دارم از نوع JsonResult که مقدار bool برمیگردونه، ایا برای این نوع متدها لازمه که بصورت POST تعریف بشن یا نه؟
    8. زمانی که اطلاعات به سرور ارسال میشه مطابق معمول ModelState بررسی میشه. حتی ممکنه داده های خاص توسط برنامه نویس به روش خاص نیز بررسی بشه. برای داده هایی از نوع کدهای HTML هم Encoding وجود داره و... که در یک مورد من از کتابخانه HtmlSanitizer استفاده کردم.
    9. در حال حاضر که دارم تازه با ASP.NET MVC کار میکنم یک هاست گرفتم که http هستش و مرورگر اعلام نا امن بودن برنامه را نایش میده. چطور باید به https تبدیل کنم؟ ایا همان هاست باید این کار را انجام بده یا باید برنامه نویس اقدام خاصی انجام بده؟
    10. جدای از همه مکانیزم های موجود تا چه حد اطلاعات باید رمزنگاری بشه؟ بطور معمول که رمز عبور کاربران hash میشه و مورد خاصی نیست. سایر اطلاعات چطور؟ فرض یک جدول اطلاعات قراداد یک شرکت هست که نباید بطور معمول قابل رویت و قابل خواندن باشه و باید محرمانه باشه. برای دریافت اطلاعات در زمان بارگذاری و ارسال مجدد به کاربر چه روشی هایی وجودد داره؟
    11. در ادامه آیتم شماره 10 برای فایل هایی با نوع خاص چه باید کارد؟ مثلا در زمان بارگذاری فایل تصویر چطور باید فایل بررسی بشه. روش معمول بررسی پسوند فایل ها هستش که در یک آموزش دیدم که فایل های Image ابتدا پسوند و پس از آن از حیث بایت های موجود مورد بررسی قرار می گرفت و خروجی bool بر می گردوند. ایا ضروریه که تمام نوع ها بررسی بشه؟ مثل PDF, Video, zip ,...


    شاید موارد دیگه ای هم وجود داشته باشه که من قطعا نمیدونم و خواهشی که دارم دوستان حداقل عنوان ها را هم معرفی کنند خودم درموردش مطالعه میکنم. برای مثال کاربرد Session, Ckookie رو میدونم ولی نکاتی که میتونه در استفاده از این ها امنیت برنامه را دچار مشکل کنه نمیدونم.

    احیانا مطالبی در خصوص سوالاتم پیدا کردن در ادامه همین پست ارسال میکنم. لینک سایت های مختلف و مطالبی که بدست میارم.

    تشکر

  2. #2
    کاربر دائمی آواتار mmbguide
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    منظومه شمسی
    پست
    1,170

    نقل قول: سطح امنیت در برنامه های وب

    درضمن بیشتر هدف من از ایجاد این تاپیک عنوان روش های پیاده سازی هستش. برای مثال خیلی منابع اعلام میکنند اطلاعات را رمزنگاری کنید. ولی چه روشی و چطور رو خیلی سخت میشه پیدا کرد. یا حداقل برای من سخته. اکثر موضوعات هم به احراز هویت ختم میشه درصورتی که یک کاربر میتونه کاربر مجاز باشه که پس از ورود به سایت اقدام به شیطنت بکنه که یک موردش رو با آیتم 6 در پست قبلی حل کردم که بخش زیادی از چالش برنامه من بود. چون اینجوری مطمئن هستم که کاربر اطلاعاتی را ویرایش و دستکاری میکنه که سرور براش ارسال کرده. حالا اینکه در ویرایش اطلاعت اشتباه ثبت کرده یک داستان هستش و اینکه بصورت دستی اطلاعات کلید اصلی را عوض کنه داستان دیگری بود که در روش پیشنهادی در آیتم 6 حل شد.

    اگر از روش هایی که تجربه دارید ارائه نظر کنید ممنون میشم.

  3. #3
    کاربر دائمی آواتار mmbguide
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    منظومه شمسی
    پست
    1,170

    نقل قول: سطح امنیت در برنامه های وب

    سلام خدمت دوستان

    بررسی صفت Authorize

    داخل یک کنترلر یک متد عمومی ایجاد کردم که یک مقدار string ساده را بر میگردونه. و قبل از اون یک عدد را از یک تابع ساده میگیره و در رشته نهایی اضافه می کنه و بعد نتیجه را به مرورگر پس میده:

            public string getData()
    {
    return $"number is {test()}";
    }


    [Authorize]
    public int test()
    {
    return 100;
    }



    اگر متد getData صفت Authorize داشته باشه که قطعا کاربر جواب دریافت نمیکنه. اما اگر مثل نمونه کد بالا این صفت را نداشته باشه ولی متد test صفت Authorize داشته باشه، مقدار 100 به getData تحویل میشه و کاربر خروجی را دریافت میکنه. حالا اگر مستقیم به test درخواست بدم بخاطر Authorize جوابی دریافت نمی کنم.

    سوالم این هستش که آیا اگر متدی که توسط request ت.سط برنماه دریافت میشه Authorize نباشه ایا این متد میتونه با تممامی متدهایی که Authorize دارند کار کنه و مقدار برگشتی دریافت کنه؟ البته در تستی که انجام دادم گویا امکان داره. حالا اگر بخواهیم این اتفادق نیوفته قطعا باید متد اصلی را Authorize کنم. اما آیا ضروریه برای متدهایی که بواسطه متد اصلی صدا زده میشن همه رو Authorize کنم؟

    تشکر

  4. #4
    کاربر دائمی آواتار mmbguide
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    منظومه شمسی
    پست
    1,170

    نقل قول: سطح امنیت در برنامه های وب

    سلام مجدد

    دوستان وقتی از ارائه یک طرح نرم افزاری تحت وب تو شرکت ها صحبت میشه عموما یک سوال مشترک پرسیده میشه. امنیت رو چطور پیاده سازی کردید؟

    پاسخ به این سوال باید شامل چه موضوعاتی باشه که استاندارد امنیت را رعایت کرده باشیم. آیا میشه گفت بخشی از دسترسی ها با استفاده از Identity تضمین شده و کاربر باید Authorize باشه؟ ایا میشه در خصوص سطح دسترسی هایی که بصورت سفارشی ایجاد کردیم صحبت کرد؟ یا که نه باید موضوعات دیگری را عنوان کنیم. ممنون میشم اگر در این خصوص راهنمایی کنید و یا کلیدواژه های مربوطه را بیان کنید تا بشه در مودش تحقیق کرد.

    تشکر

  5. #5
    کاربر دائمی آواتار mmbguide
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    منظومه شمسی
    پست
    1,170

    نقل قول: سطح امنیت در برنامه های وب

    سلام

    توضیحات ارائه شده در لینک زیر را مشاهده کنید:
    https://www.dntips.ir/post/2167/%da%...a-%d9%88%d8%a8

تاپیک های مشابه

  1. پاسخ: 3
    آخرین پست: چهارشنبه 02 اردیبهشت 1394, 12:02 عصر
  2. سوال: تشخیص سیستم مدیریت سایت ها و تغییر آدرس ورود به مدیریت CMS ها
    نوشته شده توسط iconsco در بخش توسعه وب (Web Development)
    پاسخ: 5
    آخرین پست: شنبه 20 خرداد 1391, 19:12 عصر
  3. سوال: مگر 8 بیت یک بایت نمی شود پس چگونه در این الگوریتم تعداد بیت ها یک بایت میشوند؟
    نوشته شده توسط complexcoding در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 2
    آخرین پست: دوشنبه 14 فروردین 1391, 15:21 عصر
  4. هزینه های احتمالی یک وبسایت تجاری در صورت رعایت کپی رایت
    نوشته شده توسط میلاد قاضی پور در بخش گفتگوی عمومی کامپیوتر و فناوری اطلاعات
    پاسخ: 5
    آخرین پست: یک شنبه 30 آبان 1389, 08:22 صبح

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •