عنوان
|
نويسنده
|
مشاهده
|
تعداد
آراء |
امتياز
|
حفاظت فايل ها توسط ASP.NET |
مديريت وب |
14362 |
16 |
3.8 |
با توجه به جایگاه داده در عصر حاضر و لزوم نگاه جامع به این مقوله مهم ، بر آن شدیم تا محوریت فعالیت های خود را بر روی این موضوع متمرکز نمائیم . از این رو گروه فابک با شعار فناوری اطلاعات برای کسب وکار شکل گرفت و خدمات خود را از طریق سایت www.fabak.ir به مخاطبان محترم عرضه می نماید
 |
حفاظت فايل ها توسط ASP.NET
حفاظت فايل ها توسط ASP.NET
در زمان ايجاد يک وب سايت مبتنی بر داده که در آن از بانک اطلاعاتی اکسس استفاده می
گردد ،می بايست تدابير لازم در خصوص حفاظت از فايل بانک اطلاعاتی ( فايلی با انشعاب
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
|