عنوان
|
نويسنده
|
مشاهده
|
تعداد
آراء |
امتياز
|
امنيت برنامه های وب ( بخش سوم ) |
مديريت وب |
12849 |
6 |
3.7 |
با توجه به جایگاه داده در عصر حاضر و لزوم نگاه جامع به این مقوله مهم ، بر آن شدیم تا محوریت فعالیت های خود را بر روی این موضوع متمرکز نمائیم . از این رو گروه فابک با شعار فناوری اطلاعات برای کسب وکار شکل گرفت و خدمات خود را از طریق سایت www.fabak.ir به مخاطبان محترم عرضه می نماید
 |
امنيت برنامه های وب ( بخش سوم )
امنيت برنامه های وب ( بخش
سوم )
آنچه
تاکنون گفته شده است :
|
-
بخش اول
: مفاهيم اوليه و روش های متفاوت تائيد کاربران
-
بخش دوم : بررسی
Windows Authentication
|
در بخش سوم اين مقاله به بررسی
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
mode="Forms">
<forms loginUrl = Login.aspx" >
<credentials
passwordFormat = "Clear" >
<user name = "Ali" Password ="110" />
<user name = "Kaveh" Password ="111" />
</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 فراهم می نمايد .
رويکرد فوق ، روشی ساده به منظور تعريف کاربران
مجاز يک برنامه وب می باشد . در چنين مواردی ، مديريت سيستم
می تواند بسادگی و در صورت لزوم نام و
رمز عبور کاربران ديگری را به ليست مجاز کاربران
، اضافه نمايد .
مکانيزم فوق ، در مواردی که قصد داشته باشيم ، امکان
تعريف نام و رمز عبور را در اختيار کاربران قرار دهيم ، گزينه مناسبی نبوده و می
بايست از يک فايل و يا بانک اطلاعاتی به منظور ذخيره سازی اطلاعات
کاربران ، استفاده
گردد.
در بخش
چهارم اين مقاله با نحوه
ايجاد بانک اطلاعاتی ، درج مشخصات کاربران و تائيد آنان با استناد به اطلاعات مندرج
در بانک اطلاعاتی ، خواهيم پرداخت
.