جستجو در محصولات

گالری پروژه های افتر افکت
گالری پروژه های PSD
جستجو در محصولات


تبلیغ بانک ها در صفحات
ربات ساز تلگرام در صفحات
ایمن نیوز در صفحات
.. سیستم ارسال پیامک ..
حفاظت فايل ها توسط ASP.NET
-(3 Body) 
حفاظت فايل ها توسط ASP.NET
Visitor 582
Category: دنياي فن آوري
در زمان ايجاد يک وب سايت مبتني بر داده که در آن از بانک اطلاعاتي اکسس استفاده مي گردد ،مي بايست تدابير لازم در خصوص حفاظت از فايل بانک اطلاعاتي ( فايلي با انشعاب mdb . ) اتخاذ گردد. در صورتي که فايل mdb . ، در يک دايرکتوري وب و برروي سرويس دهنده وب ، مستقر شده باشد ، افراديکه قادر به تشخيص نام فايل بانک اطلاعاتي مي باشند ، مي توانند فايل فوق را از طريق مرورگر download و محتوي آن را مشاهده نمايند. موضوع فوق در مواردي که بانک اطلاعاتي شامل داده هائي حساس نظير رمزهاي عبور و اطلاعات شخصي است،بسيار نگران کننده و خطرناک خواهد بود. در اين راستا مي توان از روش هاي متعددي به منظور حفاظت فايل بانک اطلاعاتي اکسس ( و يا هر فايل دلخواه ديگر ) استفاده نمود. يکي از مناسب ترين روش هاي موجود ، استقرار فايل در يک دايرکتوري با قابليت عدم دستيابي از طريق وب است . اکثر ميزبانان وب ، داراي فولدري خاص ( مثلا" با نام Databsae ) مي باشند که داراي مجوز لازم ( خواندن ، نوشتن ) به منظور دستيابي به يک بانک اطلاعاتي اکسس مي باشد .( امکان دستيابي به فولدر فوق از طريق وب وجود نخواهد داشت ) .
در اين مقاله با نحوه استفاده از ASP.NET به منظور حفاظت فايل هاي بانک اطلاعاتي اکسس و يا فايل هائي با يک انشعاب دلخواه، آشنا مي شويم .

نحوه ارتباط IIS و ASP.NET

پس از دريافت يک درخواست توسط سرويس دهنده وب IIS ، نوع انشعاب آن بررسي مي گردد . با توجه به نوع انشعاب فايل درخواستي ، ممکن است IIS مستقيما" مسئوليت رسيدگي به درخواست را بر عهده گرفته و يا آن را در اختيار يک ISAPI extension قرار دهد. ISAPI extension ، يک کلاس کمپايل شده است که بر روي سرويس دهنده وب نصب و مسئوليـت آن برگرداندن Markup براي نوع فايل درخواستي ، مي باشد. به صورت پيش فرض ، IIS درخواست را بررسي و بسادگي محتوي فايل درخواست شده را به عنوان پاسخ برمي گرداند. اين موضوع در رابطه با فايل هاي ايستا نظير فايل هاي HTML و CSS ، صدق مي نمايد . مثلا" زماني که درخواستي براي فايلي با انشعاب html. شده باشد ، IIS محتوي فايل HTML درخواستي را براي متقاضي ، ارسال مي نمايد. براي فايل هائي که محتوي آنان بصورت پويا توليد مي گردد ، يک ISAPI extension پيکربندي و مسئوليت پاسخگوئي به اينچنين درخواست هائي را برعهده مي گيرد . مثلا" يک وب سايت که از صفحات کلاسيک ASP استفاده مي نمايد ( فايل هائي با انشعاب asp. ) ، اين مسئوليت به يک ISAPI extension با نام asp.dll واگذار شده است . asp.dll ، صفحه asp درخواست شده را اجراء و HTML توليد شده را برمي گرداند . در صورتي که يک وب سايت از صفحات ASP.NET استفاده مي نمايد ، IIS ، مسئوليت رسيگي به فايل هائي با انشعاب aspx . را به aspnet_isapi.dll واگذار نموده است (يک ISAPI extension که فرآيند توليد HTML براي صفحه درخواستي ASP.NET را انجام خواهد داد) . aspnet_isapi.dll در فريمورک دات نت اجراء نمي گردد( Unmanaged code ) .زماني که IIS ، درخواست صفحات aspx . را در اختيار aspnet_isapi.dll قرار مي دهد ، ISAPI extension ، درخواست مربوطه را در اختيار ASP.NET engine قرار داده که کد آن در فريمورک دات نت ، اجراء مي گردد.(Managed code ).
ASP.NET engine در بسياري از موارد مشابه IIS عمل نموده و داراي يک دايرکتوري خاص به منظور mapping انشعابات فايل به ISAPI extension مورد نظر مي باشد . در چنين مواردي ASP.NET Engine ، انشعابات فايل را به HTTP handler ، مپ مي نمايد. کد نوشته شده HTTP handler ، به صورت managed code بوده و مسئوليت توليد markup براي يک نوع فايل خاص را برعهده دارد. مثلا" صفحات وب ASP.NET توسط PageHandlerFactory ، بررسي مي گردند. PageHandlerFactory ، داراي آگاهي لازم در خصوص نحوه توليد HTML markup يک صفحه ASP.NET مي باشد .

بررسي HttpForbiddenHandler

برنامه هاي وب ASP.NET داراي اطلاعات پيکربندي مشخص شده بر اساس يک فايل با فرمت XML مي باشند : Web.Config . در فايل فوق ، اطلاعاتي مشابه زير قرار مي گيرد :
• رشته هاي اتصال به بانک اطلاعاتي
• اطلاعاتي در رابطه با نحوه تائيد کاربران و ليست نام و رمز عبور آنان ( در صورت ضرورت)
• اطلاعات مربوط به مجوزها و ساير اطلاعات حساس
با توجه به جايگاه بسيار مهم اطلاعات موجود در فايل Web.config ، دستيابي و مشاهده آن توسط کاربران مي تواند بسيار خطرناک و فاجعه آميز باشد .در صورت دستيابي به محتوي فايل Web.config مربوط به يک برنامه وب ، با پيامي مبني بر عدم امکان مشاهده اين نوع فايل، مواجه خواهيم شد (This type of page not served) . شايد در اين رابطه سوالات متعددي در ذهن شما ايجاد شده باشد : چرا پس از درخواست مشاهده فايل Web.config ، محتوي آن نمايش داده نشده و در مقابل با يک پيام خاص مواجه خواهيم شد؟ از چه روشي به منظور حفاظت فايل فوق ، استفاده شده است ؟ آيا مي توان روش استفاده شده به منظور حفاظت فايل Web.config را به ساير فايل ها نيز تعميم داد ؟
در IIS ، فايل هائي که داراي انشعاب config. مي باشند به ASP.NET ISAPI extension ، مپ شده اند . ASP.NET engine ، درخواست هاي مربوط به فايل هائي با انشعاب Config. را به HttpForbiddenHandler ، مپ مي نمايد . HttpForbiddenHandler ، در نهايت HTML لازم در مواردي که قصد مشاهده محتوي فايل Web.Config وجود داشته باشد را برمي گرداند. بنابراين با استفاده از HttpForbiddenHandler ، امکان حفاظت فايل هائي با انشعاب Config. ، فراهم مي گردد. از رويکرد فوق به منظور حفاظت فايل هائي با انشعاب .cs, .vb, .webinfo, .vbproj, .csproj, .resx ، نيز استفاده مي شود.با استفاده از روش فوق مي توان فايل هاي بانک اطلاعاتي اکسس ( فايل هاي با انشعاب mdb. ) و يا هر نوع فايل دلخواه ديگر را حفاظت نمود.

حفاظت فايل هاي mdb.

به منظور حفاظت فايل هاي بانک اطلاعاتي اکسس ، مي توان از روش بکارگرفته شده براي حفاظت فايل هاي Config. ، استفاده نمود. بدين منظور مراحل زير مي بايست دنبال گردد:
• پيکربندي IIS بگونه اي که فايل هائي با انشعاب mdb . به ASP.NET ISAPI extension مپ گردند.
به منظور پيکربندي IIS در جهت mapping فايل هائي با انشعاب mdb. به ASP.NET ISAPI Extension ، مي بايست امکان دستيابي فيزيکي به سرويس دهنده وب ، وجود داشته باشد. پس از دستيابي به سرويس دهنده ، برنامه مديريتي IIS را فعال ( از طريق منوي Administrative Tools ) و بر روي وب سايت مورد نظر کليک سمت راست نموده و گزينه Properties را انتخاب مي نمائيم . در ادامه Home Directory Tab را انتخاب و پس از فعال نمودن دکمه Configuration ، جعبه محاوره اي Application Configuration ، نمايش داده مي شود.
براي افزودن يک mapping جديد ، بر روي Add button ، کليک مي نمائيم .در ادامه شاهد نمايش يک جعبه محاوره اي جديد خواهيم بود که امکان درج يک ISAPI extension جديد را فراهم مي نمايد. در اين رابطه مي توان حوزه عملکرد mapping را مشخص نمود ( تمامي درخواست هاي HTTP و يا صرفا" يک نوع خاص HTTP ). براي افزودن يک mapping براي فايل هائي با انشعاب mdb . ، مقدار mdb. را به عنوان extension وارد نموده و aspnet_isapi.dll ISAPI extension را انتخاب مي نمائيم .
( در مسير $WINDOWS_DIR$\Microsoft.Net\Framework\$VERSION$ )
• پيکربندي ASP.NET به گونه اي که فايل هائي با انشعاب mdb . به HttpForbiddenHandler ، مپ گردند .
بدين منظور دستورات زير به فايل Web.config مربوط به برنامه وب ، اضافه مي گردد :

Web.Config File : Just for a Web Application

 <httpHandlers>
<add verb="*" path="*.mdb" type="System.Web.HttpForbiddenHandler" />
</httpHandlers>


• <httpHandlers> مي بايست درون المان <system.web> ، قرار گيرد .
افزودن بخش <httpHandlers> به يک فايل Web.Config باعث مي شود که فايل هائي با انشعاب mdb. به HttpForbiddenHandler مربوط به يک برنامه وب مپ گردند ، در صورتي که قصد استفاده از mapping فوق را در تمامي برنامه هاي وب ASP.NET موجود بر روي سرويس دهنده وب داشته باشيم ، ، مي توان کد زيررا به بخش <httpHandlers> مربوط به فايل machine.config اضافه نمود ( فايل machine.config در دايرکتوري $WINDOWS_DIR$\Microsoft.Net\Framework\$VERSION$\CONFIG قرار دارد ).

Machine.config  File : All Web Application on the web server 

 <httpHandlers>
<add verb="*" path="*.mdb" type="System.Web.HttpForbiddenHandler" />
</httpHandlers>


خلاصه

در اين مقاله با نحوه استفاده از ASP.NET HTTP handlers به منظور حفاظت فايل هائي با يک انشعاب خاص ، آشنا شديم . بدين منظور لازم است دو مرحله دنبال گردد: در اولين مرحله ، انشعاب فايل در IIS به ASP.NET ISAPI extension ، مپ گردد . در مرحله دوم مي بايست پيکربندي ASP.NET engine را در خصوص mapping انشعاب مشابه به HttpForbiddenHandler ، نيز انجام داد. به منظور حفاظت يک فايل با انشعاب خاص ، مي بايست دو مرحله اشاره شده را انجام داد . در صورتيکه هر يک از مراحل بدرستي پيکربندي نگردد، امکان مشاهده محتوي فايل توسط کاربران وجود خواهد داشت .
منبع:http://www.4guysfromrolla.com  
Add Comments
Name:
Email:
User Comments:
SecurityCode: Captcha ImageChange Image