شما وارد حساب خود نشده و یا ثبت نام نکرده اید. لطفا وارد شوید یا ثبت نام کنید تا بتوانید از تمامی امکانات انجمن استفاده کنید.
تالار خورجوان

زمان کنونی: ۳-۳-۱۳۹۱, ۰۴:۴۳ عصر درود مهمان گرامی! (ورودثبت نام)


ارسال پاسخ 
 
امتیاز موضوع:
  • 0 رأی - میانگین امیتازات : 0
  • 1
  • 2
  • 3
  • 4
  • 5
امنيت برنامه های وب ( بخش سوم )
۸-۸-۱۳۸۶, ۱۱:۴۳ عصر
ارسال: #1
امنيت برنامه های وب ( بخش سوم )
در اين مقاله به بررسي Forms Authentication خواهيم پرداخت .
همانگونه که در بخش اول اين مقاله اشاره گرديد ، برنامه هاي وب ASP.NET از سه روش عمده به منظور تائيد کاربران استفاده مي نمايند :

Windows Authentication

Forms Authentication

Passport Authentication

در Forms Authentication ، برنامه IIS مسئوليتي را در ارتباط با تائيد کاربران برعهده نگرفته و تنظيمات امنيتي IIS در رابطه با برنامه وب ، دستيابي Anonymous مي باشد . فرآيند تائيد کاربران در روش فوق، بصورت زير است :

زمانيکه سرويس گيرنده درخواست يک صفحه ايمن را مي نمايد ، IIS کاربر را به عنوان Anonymous، تائيد و در ادامه درخواست وي را براي ASP.NET ارسال مي نمايد .

ASP.NET ، بررسي لازم در خصوص وجود يک کوکي خاص بر روي کامپيوتر سرويس گيرنده را انجام خواهد داد .

در صورتيکه کوکي ، موجود نبوده و يا غيرمعتبر باشد ، ASP.NET درخواست کاربر را ناديده گرفته و براي وي يک صفحه Logon را ارسال مي نمايد ( مثلا" Login.aspx ).

کاربر اطلاعات لازم ( نام و رمز عبور ) را در صفحه Logon.aspx ( به عنوان نمونه ) درج و در ادامه دکمه Submit موجود بر روي فرم را به منظور ارسال اطلاعات براي سرويس دهنده ، فعال مي نمايد.

IIS ، مجددا" کاربر را به عنوان Anonymous، تائيد و درخواست وي را براي ASP.NET ارسال مي نمايد .

ASP.NET ، تائيد کاربر را بر اساس اطلاعات ارسالي ( نام و رمز عبور ) انجام و يک کوکي را ايجاد مي نمايد .

در نهايت ، صفحه وب ايمن درخواست شده به همراه کوکي جديد براي سرويس گيرنده ارسال مي گردد. ماداميکه کوکي معتبر باشد ، کاربر قادر به درخواست و مشاهده ساير صفحات وب مي باشد.




فرآيند فوق را مي توان به دو حالت متفاوت تعميم و مورد توجه قرار داد :

حالت اول : درخواست يک صفحه ايمن از سرويس دهنده ، توسط يک کاربر غيرمجاز و تائيد نشده
مرحله اول : پس از درخواست يک سرويس گيرنده براي دستيابي به يک صفحه ايمن ، درخواست ارسالي وي در ابتدا توسط IIS بررسي و با توجه به اينکه تنظيمات IIS بصورت Anonymous پيکربندي شده تا امکان استفاده از Forms Authentication فراهم گردد ، درخواست کاربر ، مستقيما" براي ماژول ASP.NET Forms Authentication ارسال مي گردد .
مرحله دوم : ASP.NET ، بررسي لازم در خصوص وجود ( داشتن ) يک کوکي Authentication را انجام خواهد داد . با توجه به اينکه کاربر اولين مرتبه است که درخواست اطلاعاتي را نموده و داراي يک کوکي نمي باشد ، سرويس گيرنده به صفحه Logon ، هدايت مي گردد .
مرحله سوم : کاربراطلاعات ضروري ( نام و رمز عبور ) خود را در صفحه Logon درج و پس ازارسال آنان ،فرآيند بررسي اطلاعات ارسالي آغاز مي گردد. در يک برنامه بزرگ ، بررسي اطلاعات کاربر از طريق يک بانک اطلاعاتي شامل مشخصات کاربران انجام مي شود .
مرحله چهارم : در صورتيکه اطلاعات ارسالي کاربر ( نام و رمز عبور ) ، پس از بررسي توسط برنامه وب ، معتبر شناخته نگردند ، مجوز دستيابي براي کاربر صادر نشده و امکان دستيابي وي سلب مي گردد .
مرحله پنجم : در صورتيکه پس از بررسي اطلاعات ارسالي، اعتبار وصحت آنان تائيد گردد ، يک کوکي تائيد ايجاد و در ادامه به کاربر مجوز لازم به منظور دستيابي به صفحه ، اعطاء مي گردد .(هدايت کاربر به صفحه درخواست اوليه ) .

حالت دوم : درخواست يک صفحه ايمن از سرويس دهنده ، توسط يک کاربر مجاز و تائيد شده
مرحله اول : پس از درخواست يک صفحه ايمن توسط سرويس گيرنده ، کوکي Authentication بهمراه درخواست وي براي سرويس دهنده ، ارسال مي گردد.
مرحله دوم :درخواست ارسالي توسط سرويس گيرنده در ابتدا توسط IIS دريافت و با توجه به تنظيمات انجام شده ( دسيتابي Anonymous ) ، درخواست وي مستقيما" براي ASP.NET Forms Authentication ارسال مي گردد .
مرحله سوم : ماژول ASP.NET Forms Authentication ، بررسي لازم در خصوص کوکي را انجام و در صورتيکه کوکي معتبر باشد ، سرويس گيرنده تائيد و امکان دستيابي و مشاهده صفحه وب درخواستي براي وي ، فراهم مي گردد .

در روش Forms Authentication ، بصورت اتوماتيک يک فرم وب طراحي شده به منظور اخذ اطلاعات مربوط به نام و رمز عبور کاربران ، نمايش داده مي شود . کد مرتبط با فرم وب ، عمليات تائيد و معتبرسازي کاربر را بر اساس ليست ذخيره شده در فايل Web.Config برنامه و يا از طريق يک بانک اطلاعاتي جداگانه ، انجام مي دهد. مزيت مهم Forms Authentication ، عدم ضرورت عضويت کاربران در Domain شبکه به منظور دستيابي به برنامه وب ، مي باشد .

فعال نمودن Forms Authentication
به منظور استفاده از روش فوق ، مي بايست مراحل زير را دنبال نمود :

مقداردهي Authentication mode در فايل Web.config به Forms

ايجاد يک فرم وب به منظور اخذ اطلاعات کاربران ( Logon Page )

ايجاد يک فايل و يا بانک اطلاعاتي به منظور ذخيره نام و رمز عبور کاربران

نوشتن کد لازم به منظور افزودن کاربر جديد به فايل و يا بانک اطلاعاتي کاربران

نوشتن کد لازم به منظور تائيد کاربران با استناد به فايل و يا بانک اطلاعاتي کاربران

Forms Authentication ، از کلاس هاي موجود در namespace با نام System.Web.Security استفاده مي نمايد . به منظور استفاده از کلاس هاي فوق، مي بايست در ويژوال بيسک دات نت از عبارت Imports و در ويژوال سي شارپ از Using استفاده گردد ( در ابتداي هر ماژول که عمليات تائيد را انجام خواهد داد : Imports System.Web.Security ) .

مقداردهي Authentication mode
نوع تائيد کاربران در يک برنامه وب ، مي بايست با استفاده از عنصر <authentication> در فايل Web.config مشخص گردد. به منظور تنظيم برنامه مورد نظر خود براي استفاده از Forms Authentication ، تغييرات زير را در فايل Web.Config ، اعمال مي نمائيم :


Web.Config setting for Forms Authentication

<authentication>
<forms loginUrl = Login.aspx" >
<credentials>
<user>
<user>
</credentials>
</forms>
</authentication>



کد فوق، يک نوع ساده از تائيد کاربران به روش Forms را نشان مي دهد . در اين رابطه ، اغلب از تعاريف و تنظيمات پيش فرض و يک ليست کاربران مجاز، استفاده شده است. از عناصر متفاوتي در ارتباط با Forms Authentication در فايل Web.Config استفاده مي گردد.هر يک از عناصر داراي خصلت هاي خاص خود مي باشند :

عنصر <authentication>
خصلت Mode ، با استفاده از خصلت فوق ، روش تائيد و شناسائي کاربران مشخص مي گردد. با مقدار دهي خصلت فوق به Forms ، روش Forms Authentication انتخاب خواهد شد.

عنصر <forms>
خصلت name . از خصلت فوق به منظور مشخص نمودن نام کوکي که اطلاعات مربوط به نام و رمز عبور را ذخيره مي نمايد ، استفاده مي شود . مقدار پيش فرض ، authaspx . مي باشد . در صورتيکه بيش از يک برنامه بر روي سرويس دهنده از روش Forms Authentication استفاده مي نمايند ، مي بايست براي هر يک از آنان نام منحصربفردي در نظر گرفته شود .
خصلت loginUrl .از خصلت فوق به منظور مشخص نمودن نام فرم وب Login براي کاربران تائيد نشده ، استفاده مي گردد . مقدار پيش فرض خصلت فوق، Default.aspx است .
خصلت protection . با استفاده از خصلت فوق روش حفاظت کوکي Authentication که بر روي کامپيوتر سرويس گيرنده ذخيره مي گردد ، مشخص خواهد شد. مقدار پيش فرض خصلت فوق ، All بوده که عمليات رمزنگاري و بررسي اعتبار و صحت داده در رابطه با آن اعمال مي گردد. ساير گزينه هاي موجود در اين راستا ، Encryption,Validation و None مي باشد .
خصلت timeout . با استفاده از خصلت فوق ، مدت زمان نگهداري کوکي Authentication بر روي ماشين کاربر مشخص مي گردد . مقدار پيش فرض 30 دقيقه است . ASP.NET ، پس از دريافت يک درخواست جديد توسط کاربر و مشروط به گذشت بيش از نصف زمان تعريف شده ، کوکي را تجديد ( Renew ) خواهد کرد .
خصلت path . با استفاده از خصلت فوق ، مسير مورد نظر به منظور ذخيره سازي کوکي بر روي ماشين کاربر مشخص مي گردد . مقدار پيش فرض ، "\" است .

عنصر <credentials>
خصلت passwordFormat ، با استفاده از خصلت فوق ، الگوريتم لازم به منظور رمزنگاري رمز عبور کاربر ، مشخص مي گردد . مقدار پيش فرض ، SHA1 مي باشد . ساير گزينه هاي موجود در اين رابطه ، MD5 و Clear ( بدون رمزنگاري ) مي باشد .

عنصر <users>
خصلت name ، با استفاده از خصلت فوق ، نام کاربر مشخص مي گردد.
خصلت password ، با استفاده از خصلت فوق ، رمز عبور کاربر مشخص مي گردد.

عنصر <credentilas> ، امکان ذخيره سازي ليست کاربران را در Web.Config فراهم مي نمايد . رويکرد فوق ، روشي ساده به منظور تعريف کاربران مجاز يک برنامه وب مي باشد . در چنين مواردي ، مديريت سيستم مي تواند بسادگي و در صورت لزوم نام و رمز عبور کاربران ديگري را به ليست مجاز کاربران ، اضافه نمايد . مکانيزم فوق ، در مواردي که قصد داشته باشيم ، امکان تعريف نام و رمز عبور را در اختيار کاربران قرار دهيم ، گزينه مناسبي نبوده و مي بايست از يک فايل و يا بانک اطلاعاتي به منظور ذخيره سازي اطلاعات کاربران ، استفاده گردد.
یافتن تمامی ارسال های این کاربر
نقل قول این ارسال در یک پاسخ
ارسال پاسخ 


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان
Persian MyBB : MyBBIran.com
Powered by MyBB | Copyright © 2009 MyBB Group
Element Blue by MyBB Mod | RTL by MyBBIran.com