امنيت برنامه های وب ( بخش سوم )
S h a b g a r d . O R G
.::Security Group::.

*Nix *Nix *Nix *Nix *Nix *Nix *Nix مبتدی مبتدی مبتدی

    Search for in  

  خانه

  *Nix

      مبتدی

      متوسط

      تخصصی

  Windows

      مبتدی

      متوسط

      تخصصی

  network

  Programming

      PHP

  Security

  Hacking

  Program

      MS-Word

      Graphic

  Cisco

  Hardware



امنيت برنامه های وب ( بخش سوم )
Posted by SAKHA RAVESH CO. on Jan 6, 2005, 15:03

در بخش سوم  اين مقاله به بررسی 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 فراهم می نمايد . رويکرد فوق ، روشی ساده به منظور تعريف کاربران مجاز يک برنامه وب می باشد . در چنين مواردی ، مديريت سيستم می تواند بسادگی و در صورت لزوم  نام و رمز عبور کاربران ديگری را به ليست مجاز کاربران ، اضافه نمايد . مکانيزم فوق ، در مواردی که قصد داشته باشيم ، امکان تعريف نام و رمز عبور را در اختيار کاربران قرار دهيم ، گزينه مناسبی نبوده و می بايست از يک فايل و يا بانک اطلاعاتی به منظور ذخيره سازی اطلاعات کاربران ، استفاده گردد.

در بخش چهارم اين مقاله با نحوه ايجاد بانک اطلاعاتی ، درج مشخصات کاربران و تائيد آنان با استناد به اطلاعات مندرج در بانک اطلاعاتی ، خواهيم پرداخت .






---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
Latest Headlines

 *Nix
 نصب سيستم عامل لينوكس وفارسي نويسي در محيط
kavoshgar.blogsky.com
 نصب سيستم عامل لینوکس مندریک 9.2 Mandrake linux
 راهنماي كاربران جديد لينوكس
 راهنماي كاربران جديد لينوكس
 تعاريف پايه و نكات كاربردي در لينوكس و يونيكس
 تنظیماتIP و شبکه در گنو / لینوکس
 تعیین سطوح دسترسی کاربران در لینوکس
 تاریخچه لینوکس
 ظاهر پوسته فرمان
 استفاده از پوسته فرمان در لینوکس
 Windows
 بازگرداندن ویندوز خراب شده به حالت قبل از بروز مشکل
 چگونه میتوان در ويندوز 98 و ME به درايو NTFS دسترسي داشت
 با افزودن پسورد دوم براي ورود به ویندوز XP امنیت خود را تا حد زیادی افزایش دهید
 برنامه های تحت داس و قدیمی را چگونه در XP اجرا کنیم
 نصب ويندوز 98 يا ME در محیط ويندوز NT يا XP فقط در یک دقیقه و نیم
 مقدمات و نيازهاي شما براي يادگيري TCP/IP
 امكانات شبكه اي ويندوز
 SSL چيست ؟
 آموزش HyperTerminal
 آموزش كرك فايل هاي SAM
 network
 كارت شبكه يا LAN Card
 شبكه سرى يا BNC
 شبكه Hub
 تنظيم و كنترل برنامه Network Neighborhood
 استفاده از شبكه و عمل Sharing
 نصب و تنظيم برنامه Wingate جهت اتصال شبكه به سرور و اينترنت
 AAA (Authentication, Authorization and Accounting)
 مقدمه ای بر شبکه خصوصی مجازی (VPN)
 ip و port
  RFC چيست؟
 Programming
 زبان برنامه نویسی D قسمت اول
 زبان برنامه سازی D تحت لینوکس قسمت دوم
 زبان برنامه‌نويسی D بخش سوم
 زبان برنامه نویسی D بخش چهارم
 زبان برنامه نویسی D بخش پنجم
 زبان برنامه‌نویسی D بخش ششم
 نرم‌افزار آزاد یا باز‌متن چیست؟
 مقدمه ای بر برنامه نويسی شی گراء در دات نت
 آموزش رتينا
 ايجاد فايل XML با استفاده از يک بانک اطلاعاتی
 Security
 بررسی نحوه عملکرد فایروال Firewallیا ديواره آتش
 مقايسه سرورهای لينوکس و ويندوز
 چه فایلهائی میتوانند برای کاربران مخاطره آمیز باشند !
 امنيت برنامه های وب ( بخش اول )
 امنيت برنامه های وب ( بخش دوم )
 امنيت برنامه های وب ( بخش سوم )
 امنيت برنامه های وب ( بخش چهارم )
 امنيت برنامه های وب ( بخش پنچم )
 امنيت نامه های الکترونيکی ( بخش اول )
 مفاهيم اوليه پروتکل TCP/IP ( بخش اول )
 Hacking
 چگونه هکر شویم؟ بخش اول
 چگونه هکر شویم؟ بخش دوم
 هنر هشتم : كرك كردن
 مقدمات قبل از شروع يادگيری هک
 Port Scanning
 Port Scanning
  کاربرد نرم‌افزار nmap
 IP Scanning
 پورت ۷۹
 پورت ۸۰ چيست؟
 Program
  آموزشهاي افكتهاي فتوشاپ
 Shocking Text
 مبانی آشنايی با Word
  آموزش ساخت متن یخی
 نصب تم در موزیلا فایرفاکس
 کلید های میانبر در فایرفاکس
 Cisco
 آشنايي با مدارک سيسکو
 Cisco Systems
 Hardware
 آشنايي با پورت USB
 نحوه انتخاب يك كارت صدا