+ ارسال موضوع جدید
نمایش نتایج: از شماره 1 تا 3 , از مجموع 3

موضوع: امنيت برنامه هاي در برنامه نویسی وب (مقالات)

  1. #1
    کاربر سایت

    http://www.iranjoman.com/images/iranjoman/neshan2.gifhttp://www.iranjoman.com/images/iranjoman/neshan2.gif

    [ ]
    تاریخ عضویت
    Aug 2009
    سن
    31
    نوشته ها
    208
    تشکر
    20
    تشکر شده 15 بار در 9 پست

    امنيت برنامه هاي در برنامه نویسی وب (مقالات)

    امنيت برنامه هاي وب قسمت اول

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

    Windows Authentication

    Forms Authentication

    Passport Authentication

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

    شناسائي و تائيد کاربران
    Authentication ، فرآيندي است که بر اساس آن کاربران شناسائي مي گردند . Authorization ، فرآيند اعطاي دستيابي به کاربران با توجه به هويت آنان مي باشد . با تلفيق Authentication و Authorization، امکان ايمن سازي برنامه هاي وب در مقابل افراد مزاحم و غير مجاز ، فراهم مي گردد .

    دستيابي از طريق کاربران ناشناس ( Anonymous )
    اغلب سايت هاي وب از روش دستيابي "Anonymous" ، استفاده مي نمايند . در چنين مواردي ، اطلاعات موجود بر روي سايت جنبه عمومي داشته و امکان دستيابي تمامي کاربران به اطلاعات وجود خواهد داشت . اين نوع سايت ها ، ضرورتي به بررسي مجاز بودن کاربران براي استفاده از منابع موجود ، نخواهند داشت . برنامه هاي وب ASP.NET ، امکان دستيابي Anonymous را به منابع موجود بر روي سرويس دهنده توسط Impersonation ارائه مي نمايند . Impersonation ، فرآيند نسبت دهي يک Account به يک کاربر ناشناس است . Account دستيابي Anonymous بصورت پيش فرض ، IUSER_computername ، مي باشد. با استفاده از Account فوق ، امکان کنترل کاربران ناشناس که به منابع موجود بر سرويس دهنده دستيابي دارند ، وجود خواهد داشت . به منظور مشاهده و تغيير مجوزهاي دستيابي در نظر گرفته شده براي Account فوق از برنامه Computer Management استفاده مي گردد :

    ورود به شبکه ( Logon ) به عنوان مديريت شبکه

    اجراي Computer Management ( از طريق : Start | Programs | Administrator Tools )

    انتخاب فولدر Users به منظور نمايش ليست کاربران

    مشاهده گروههائي که Account فوق به عنوان عضوي از آنان مي باشد( کليک بر روي Member of ) . کاربران Anonymous ، بصورت پيش فرض ، عضوي از گروه Guests بوده که داراي مجوزهاي اندکي مي باشد. ASP.NET از ASP.NET Account ( با توجه به تنظيمات پيش فرض) ، به منظور اجراي برنامه وب استفاده مي نمايد . بدين ترتيب ، در صورتيکه برنامه اي سعي در انجام عملياتي نمايد که در ليست مجوزهاي ASP.NET Account وجود نداشته باشد ، يک مورد خاص امنيتي بوجود آمده و امکان دستيابي آن تائيد نخواهد شد.

    به منظور اعمال محدوديت در دستيابي کاربران ناشناس مي توان از تنظيمات مربوط به مجوزهاي فايل ويندوز استفاده نمود . براي ايمن سازي ، سرويس دهنده مي بايست داراي سيستم فايل NTFS باشد . سيستم هاي فايل FAT و يا FAT32 ، ايمن سازي در سطح فايل را ارائه نمي نمايند .

    دستيابي از طريق کاربران تائيد شده
    دستيابي Anonymous ، گزينه اي مناسب براي دستيابي به اطلاعات عمومي و عام است . در صورتيکه برنامه هاي وب شامل اطلاعاتي خاص و خصوصي باشند ، مي بايست در ابتدا کاربران شناسائي و در ادامه با توجه به مجوزهاي تعريف شده ، امکان دستيابي فراهم گردد. در برنامه هاي وب ASP.NET از سه روش عمده به منظور Authentication و Authorization کاربران استفاده مي گردد :

    Windows integrated authentication : در روش فوق ، شناسائي و تائيد کاربران بر اساس ليست کاربران تعريف شده بر روي سرويس دهنده انجام خواهد شد. در ادامه با توجه به مجوزها و امتيازات نسبت داده شده به هر Account ، امکان دستيابي و يا عدم دستيابي به منابع موجود بر روي سرويس دهنده ، فراهم مي گردد.

    Forms authentication : در روش فوق ، کاربران به يک فرم وب Logon ، هدايت مي گردند . در ادامه ، اطلاعات مربوط به نام و رمز عبور آنان اخذ و فرآيند شناسائي و تائيد بر اساس يک لسيت کاربران و يا از طريق يک بانک اطلاعاتي که برنامه حمايت مي نمايد ، انجام خواهد شد.

    Passport authentication : در روش فوق ، کاربران جديد به يک سايت که توسط مايکروسافت ميزبان شده است ، هدايت مي گردند .پس از ريجستر شدن کاربران ، امکان دستيابي آنان به چندين سايت ، فراهم خواهد شد( تمرکز در شناسائي کاربران و استفاده از سايت هاي متعدد با توجه به تائيد بعمل آمده ) .

    هر يک از رويکردهاي فوق ، به همراه روش دستيابي Anonymous ، داراي مزاياي مختص به خود بوده و براي نوع خاصي از برنامه هاي وب ، مناسب مي باشند :

    نوع برنامه : برنامه وب عمومي اينترنت
    روش تائيد کاربران : Anonymous
    توضيحات : روش عمومي دستيابي براي اغلب سايت هاي وب ، مي باشد. در اين روش ، ضرورتي به Logon وجود نداشته و با استفاده از مجوزهاي سيستم فايل NTFS ، مي توان ايمن سازي منابعي را که قصد اعمال محدوديت در رابطه با دستيابي به آنان وجود دارد را انجام داد .

    نوع برنامه : برنامه وب اينترانت
    روش تائيد کاربران : Windows integrated
    توضيحات : در روش فوق ، سيستم معتبر سازي ويندوز ، کاربران شبکه را از طريق کنترل کننده Domain ، تائيد مي نمايد. امکان دستيابي به منابع برنامه هاي وب بر اساس مجوزهاي تعريف شده بر روي سرويس دهنده ، براي هر يک از کاربران فراهم مي گردد .

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

    نوع برنامه : برنامه هاي متعدد تجاري
    روش تائيد کاربران : Passport
    توضيحات : در روش فوق ، کاربران يک مرتبه Sign in نموده ( از طريق يک مرکز تائيد کاربران ) و امکان دستيابي و استفاده آنان از تمامي برنامه هائي که از Passport SDK استفاده مي نمايند ، وجود خواهد داشت . اطلاعات کاربران در يک Passport profile نگهداري خواهدشد ( در مقابل استفاده از يک بانک اطلاعاتي محلي ) .

    استفاده از Authentication در فايل هاي HTM و يا HTML
    سه روش تائيد کاربران که توسط ASP.NET ارائه شده است ، صرفا" در رابطه با فايل هائي که به عنوان بخشي از برنامه وب مي باشند ، بکار گرفته مي شود .فرم هاي وب ( فايل هائي با انشعاب aspx . ) ، ماژول ها ( فايل هائي با انشعاب asax . ) ، نمونه هائي در اين زمينه مي باشند. فرآيند فوق ، صفحات HTML ( فايل هائي با انشعاب HTM و يا HTML ) را شامل نمي گردد و مسئوليت آن بصورت پيش فرض به IIS ( در مقابل ASP.NET ) واگذار شده است. در صورتيکه فصد تائيد کاربراني ( استفاده از يکي از روش هاي Windows,Forms و Passport ) را داشته باشيم که به صفحات HTML از طريق برنامه وب دستيابي دارند ، مي بايست اين نوع فايل ها به ASP.NET executable ، مپ گردند .به منظور مپ نمودن فايل هاي html به ASP.NET executable ، پس از اجراي IIS مراحل زير را دنبال مي نمائيم :

    انتخاب فولدر شامل برنامه وب و Properties از طريق Action Menu . در ادامه برنامه IIS ، جعبه محاوره اي Properties را نمايش خواهد داد .


    بر روي Directory Tab کليک نموده و در ادامه گزينه Configuration را انتخاب مي نمائيم . IIS در ادامه جعبه محاوره اي Application Configuration را نمايش خواهد داد

    بر روي دکمه Add کليک نموده و در ادامه IIS جعبه محاوره اي Add/Edit Application Extension Mapping را نمايش خواهد داد .

    بر دکمه Browse کليک نموده و فايل aspnet_isapi.dll را انتخاب مي نمائيم .فايل فوق در دايرکتوري Windows Microsoft .Net Framework قرار داشته و مسير آن مشابه زير است :

    Path for aspnet_isapi.dll

    C:\windows\Microsoft.NET\Framework\versionnumber\a spnet_isap i.dll


    htm. را در فيلد File Extension تايپ مي نمائيم .

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

  2. #2
    کاربر سایت

    http://www.iranjoman.com/images/iranjoman/neshan2.gifhttp://www.iranjoman.com/images/iranjoman/neshan2.gif

    [ ]
    تاریخ عضویت
    Aug 2009
    سن
    31
    نوشته ها
    208
    تشکر
    20
    تشکر شده 15 بار در 9 پست

    پیش فرض

    امنيت برنامه هاي وب ( بخش دوم )

    در اين مقاله به بررسي Windows Authentication خواهيم پرداخت .
    همانگونه که در بخش اول اين مقاله اشاره گرديد ، برنامه هاي وب ASP.NET از سه روش عمده به منظور تائيد کاربران استفاده مي نمايند :

    Windows Authentication

    Forms Authentication

    Passport Authentication

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

    کاربر درخواستي مبني بر دريافت يک صفحه وب ايمن را از برنامه وب ، مي نمايد .

    پس از دريافت درخواست توسط سرويس دهنده وب ، IIS عمليات بررسي صلاحيت کاربر را انجام خواهد داد . در اين راستا ، اطلاعات ارائه شده توسط کاربر در زمان logon ( نام و رمز عبور) ، با اطلاعات موجود بر روي سرويس دهنده وب و يا Domain ، مقايسه مي گردد .

    در صورتيکه پس از بررسي مدارک ارائه شده توسط کاربر ( نام و رمز عبور ) ، وي به عنوان کاربر غير مجاز تشخيص داده شود ، درخواست وي ناديده گرفته خواهد شد .

    کامپيوتر سرويس گيرنده ، يک جعبه محاوره اي Logon را توليد و از کاربر درخواست درج اطلاعات مورد نياز ( نام و رمز عبور ) ، مي گردد . پس از درج اطلاعات درخواستي توسط کاربر و ارسال آنان براي سرويس دهنده ، مجددا" IIS بررسي لازم در خصوص صحت آنان را انجام خواهد داد . در صورتيکه صحت اطلاعات ارسالي کاربر ( نام و رمز عبور ) تائيد گردد ، IIS درخواست اوليه کاربر را به سمت برنامه وب هدايت مي نمايد .

    در آخرين مرحله و پس از بررسي و تائيد صلاحيت کاربر ، صفحه وب درخواستي براي کاربر ارسال مي گردد .

    مهمترين مزيت روش Windows Authentication ، استفاده مشترک از يک مدل امنيتي به منظور دستيابي به منابع موجود در شبکه و برنامه هاي وب است . پس از تعريف و اعطاي مجوزهاي لازم به کاربر ، امکان دستيابي وي به منابع موجود در شبکه و برنامه هاي وب بر اساس يک سيستم امنيتي مشابه و يکسان ، فراهم مي گردد .
    در زمان ايجاد يک پروژه جديد برنامه وب توسط ويژوال استوديو دات نت ، از روش Windows Authentication بصورت پيش فرض به منظور تائيد کاربران استفاده مي گردد .پس از ايجاد يک پروژه جديد برنامه وب در ويژوال استوديو دات نت ، فايل Web.Config بصورت اتوماتيک ايجاد مي گردد . ( يک فايل XML که اطلاعات متفاوتي را در ارتباط با پيکربندي رنامه وب در خود ذخيره مي نمايد ) . محتوي پيش فرض اين فايل بصورت زير است ( صرفا" بخشي که با موضوع اين مقاله ارتباط دارد ، منعکس مي گردد ) :


    Web.Config default setting

    <authentication mode="Windows" />
    <authorization>
    <allow users="*" /> <!-- تمامي کاربران -->
    </authorization>



    در بخش مربوط به عنصر authentication ، سياست تائيد کاربران برنامه هاي وب مخشص مي گردد . براي مشخص نمودن سياست فوق از خصلت mode مربوط به عنصر authentication ، استفاده شده که مي تواند يکي از مقادير : Windows , Forms ,Passport و يا None را دارا باشد . در بخش authorization ، سياست هاي مربوط به کاربران مجاز برنامه وب مشخص مي گردد . در اين رابطه مي توان ، امکان دستيابي و يا عدم دستيابي به برنامه هاي وب را با مشخص نمودن کاربران و يا با توجه به وظايف آنان ، فراهم نمود. ( استفاده از کاراکتر " * " ، به معني همه کاربران بوده و کاراکتر "؟" به منزله کاربران ناشناس و غيرمجاز است) . براي آشنائي با عملکرد روش Windows Authentication ، مراحل زير را دنبال مي نمائيم :

    بخش authorization در فايل Web.Config را بصورت زير تغيير مي نمائيم :

    Authorization element

    <authorization>
    <deny users="?" />
    </authorization>



    تگ هاي زير را که يک جدول HTML را تعريف مي نمايند ، در فرم وب شروع برنامه وب ، قرار مي دهيم :

    HTML Table in Startup web form

    <TABLE id="tblUser">
    <tr>
    <TD><STRONG>آيا کاربر تائيد شده است ؟</STRONG></TD>
    <TD><Span runat="server" id="spnAuthenticated"></Span></TD>
    </tr>
    <tr>
    <TD><STRONG>نام کاربر </STRONG></TD>
    <TD><Span runat="server" id="spnUserName"></Span></TD>
    </tr>
    <tr>
    <TD><STRONG>نوع تائيد کاربر</STRONG></TD>
    <TD><Span runat="server" id="spnAuthenticationtype"></Span></TD>
    </tr>
    </TABLE>



    به حالت Design view سوئيچ نموده و کد زير را در فايل Code Behind فرم وب شروع برنامه ، قرار مي دهيم :

    Web form's code-behind file

    Private Sub Page_Load( ByVal sender As System.Object,ByVal e As System.EventArgs ) Handles Mybase.Load
    spnAuthenticated.InnerText = User.Identity.IsAuthenticated
    spnUserName .InnerText = User.Identity.Name
    spnAuthenticationType.InnerText = User.Identity.AuthenticationType
    End Sub



    پس از اجراي پروژه بصورت محلي ، ASP.NET تائيد کاربر را بر اساس نام و رمز عبوري که براي ورود به ويندوز استفاده شده است ، انجام خواهد د اد .


    پس از اجراي پروژه از راه دور ( مثلا" دستيابي از طريق اينترنت ) ، ASP.NET يک جعبه محاوره اي رادر مرورگر نمايش داده تا از طريق آن نام و رمز عبور کاربر دريافت گردد .


    در صورتيکه نام و رمز عبور درج شده توسط کاربر با تعاريف انجام شده در Domain شبکه ، مطابقت نمايد ، ASP.NET کاربر را تائيد و مجوز لازم به منظور استفاده از برنامه وب صادر خواهد شد . در اين رابطه ASP.NET ، يک authorization certificate را به شکل يک کوکي صادر که در حين Session کاربر ، نگهداري و از آن استفاده مي گردد. Session کاربر، پس از اتمام زمان Time out و يا بستن مرورگر ، خاتمه مي يابد . برنامه وب اجراي خود را متناسب با مجوزهاي تعريف شده در ارتباط با Account آغاز مي نمايد .
    روش Windows integrated authentication در يک شبکه مبتني بر Domain بهتر کار خواهد کرد . شبکه هائي که از Workgroup استفاده مي نمايند ( در مقابل استفاده از Domain ) داراي محدوديت هاي خاص خود به منظور استفاده از ويژگي هاي امنيتي ، مي باشند. شبکه هاي مبتني بر Domain ، از يک کنترل کننده Domain به منظور تائيد و معتبرسازي کاربران شبکه ، استفاده مي نمايد .
    با استفاده از امکانات ارائه شده در فايل Web.Config مي توان يک لايه امنيتي مضاعف را ايجاد نمود . دراين راستا ، مي توان تنظيمات لازم به منظور دستيابي و يا عدم دستيابي کاربران و يا گروه هاي خاصي از کاربران را نيز انجام داد .

    اعمال محدوديت براي کاربران خاص ( دستيابي و يا عدم دستيابي )
    در موارديکه از روش Windows integrated authentication استفاده مي گردد ، ASP.NET ، ليست تائيد موجود در فايل Web.Config را به منظور آگاهي از صلاحيت کاربران شبکه براي استفاده ازبرنامه وب ، بررسي مي نمايد. کاراکترهاي "*" و "؟" داراي معاني خاصي در ليست تائيد مي باشند : کاراکتر "* " ، نشاندهنده تمامي کاربران و کاراکتر "؟"، نشاندهنده کاربران غير مجاز( ناشناس) مي باشد . مثلا" ليست تائيد زير در Web.Config ، امکان دسـتيابي تمامي کاربران ناشناس به برنامه وب را حذف و مي بايست تمامي کاربران به منظور استفاده از برنامه وب ،تائيد گردند .

    Authorization element

    <authorization>
    <deny users="?" />
    </authorization>



    به منظور اعمال محدوديت در دستيابي کاربراني خاص ،مي توان از عنصر <allow> استفاده و اسامي تمامي کاربران مجاز را با صراحت مشخص نمود (اسامي توسط ويرگول از يکديگر تفکيک مي گردند) . پس از معرفي کاربران مجاز با استفاده از عنصر <allow> ، مي بايست با بکارگيري عنصر <deny> ، امکان دستيابي به برنامه توسط کاربران غير مجاز، سلب مي گردد .

    Authorization element

    <authorization>
    <allow users="Ali Reaz , Reza Ali " />
    <deny users="*" />
    </authorization>



    ليست مجاز فوق ، امکان دستيابي دو کاربر که اسامي آنان با صراحت مشخص شده است را به برنامه وب خواهد داد. ساير کاربران ، امکان دستيابي به برنامه وب را دارا نخواهند بود ( نقش عنصر deny در مثال فوق ) علاوه بر ليست مجاز فوق که اسامي دو کاربر را مشخص و آنان را براي استفاده از برنامه وب مجاز مي نمايد ، دو کاربر فوق ، مي بايست داراي Account لازم در Domain شبکه نيز باشند .

    تائيد کاربران بر اساس نوع وظيفه
    براي تائيد کاربران به منظور استفاده از يک برنامه مي توان ، مجوزهاي لازم را بر اساس وظيفه آنان در سازمان ، صادر و امکان دستيابي و يا عدم دستيابي را براي آنان فراهم نمود. در ويندوز NT و XP ، وظايف به اسامي مپ شده تا از اين طريق امکان شناسائي گروه هاي کاربران ، فراهم گردد. ويندوز، چندين گروه را بصورت اتوماتيک از قبل ايجاد مي نمايد : Administrators ,Users و Guests . در اين رابطه مي توان از عنصر <roles> در ليست استفاده کنندگان مجاز برنامه وب در فايل Web.Config استفاده و امکان دستيابي به يک برنامه را با توجه به وظايف کاربر ، فراهم نمود. مثلا" ليست زير، امکان دستيابي به برنامه وب را صرفا" براي کاربراني که به عنوان Administrator به شبکه وارد مي شوند ، فراهم مي نمايد.

    Authorization element

    <authorization>
    <allow roles ="Administrators" />
    <deny users="*" />
    </authorization>



    پس از تائيد کاربر و صدور مجوز لازم به منظور استفاده از برنامه وب ، مي توان با استفاده از خصلت Identity مربوط به شي User ، هويت کاربر ( نام و نوع وظيفه ) را از طريق برنامه شناسائي نمود.خصلت فوق، يک شي را که شامل اطلاعات مربوط به نام و وظيفه کاربراست را برمي گرداند .

    Web form's code-behind file

    Private Sub Page_Load( ByVal sender As System.Object,ByVal e As System.EventArgs ) Handles Mybase.Load
    spnAuthenticated.InnerText = User.Identity.IsAuthenticated
    spnUserName .InnerText = User.Identity.Name
    spnAuthenticationType.InnerText = User.Identity.AuthenticationType
    End Sub



    به منظور آگاهي و انجام عمليات لازم با توجه به نوع وظيفه کاربر که از برنامه وب استفاده مي نمايد ، مي توان از متد IsInRole شي User ، استفاده نمود .

    IsInRole method

    If User.IsInRole("Administrators") Then
    'انجام عمليات دلخواه
    End If



    استفاده از تنظيمات IIS به همراه Windows Authentication
    تنظيمات Authorization در فايل Web.Config با تنظيمات انجام شده در IIS با يکديگر Overlap مي شوند . در صورتيکه Authorization هم در فايل Web.Config و هم توسط IIS تنظيم شده باشد ، در ابتدا تنظيمات IIS بررسي و در ادامه تنظيمات موجود در فايل Web.Config ، مورد توجه قرار خواهند گرفت. به منظور مشاهده تنظيمات authorization در IIS مراحل زير را دنبال مي نمائيم :

    در IIS بر روي فولدر برنامه وب کليک سمت راست نموده و در ادامه گزينه Properties را انتخاب مي نمائيم . برنامه IIS در ادامه جعبه محاوره اي Properties مربوط به فولدر را نمايش خواهد داد .

    بر روي Directory Security Tab کليک و در ادامه دکمه Edit را در گروه Anonymous Access And Authentication Control کليک مي نمائيم . IIS ، جعبه محاوره اي Authentication Methods را نمايش خواهد داد .

    اولين گروه از تنظيمات در جعبه محاوره اي ، کنترل دستيابي Anonymous را انجام مي دهد ( همه کاربران ). غير فعال نمودن گزينه فوق ، معادل <"?" = deny User > در فايل Web.config است.

    Check Box هاي موجود در قسمت دوم جعبه محاوره اي ، مجاز بودن برنامه به منظور استفاده از Basic و يا Digest Authentication را علاوه بر Windows Authentication ، مشخص مي نمايد. روش هاي فوق ، ايمني بمراتب کمتري را نسبت به Windows Integrated ارائه مي نمايند .مي توان چندين روش authentication را در IIS فعال نمود . در صورتيکه چندين روش فعال شده باشد ، مي توان با استفاده از متد AuthenticationType مربوط به شي Identity ، از روش استفاده شده به منظور تائيد کاربر ، آگاهي يافت .

    AuthenticationType method

    Response.Write(User.Identity.AuthenticationType)
    همیشه خود باشیم نه کسی دیگر!!

  3. #3
    کاربر سایت

    http://www.iranjoman.com/images/iranjoman/neshan2.gifhttp://www.iranjoman.com/images/iranjoman/neshan2.gif

    [ ]
    تاریخ عضویت
    Aug 2009
    سن
    31
    نوشته ها
    208
    تشکر
    20
    تشکر شده 15 بار در 9 پست

    پیش فرض

    امنيت برنامه های وب ( بخش سوم )


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

    منبع :srco.ir
    همیشه خود باشیم نه کسی دیگر!!

+ ارسال موضوع جدید

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

تعداد اعضای بازدید کننده از این تایپیک : 0

بازدید کنندگان :  (نمایش کلی)

نامی برای نمایش وجود ندارد.

کلمات کلیدی این موضوع

Bookmarks

مجوز های ارسال و ویرایش

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