تبلیغات
آموزشASP.NET - حفاظت فایل ها توسط ASP.NET
 
فردا روشن اسن به
آموزشASP.NET
صفحه نخست         تماس با مدیر         پست الکترونیک        RSS         ATOM
 
 
شنبه 23 مرداد 1389 :: نویسنده : ارش کاکاوند

در زمان ایجاد یک وب سایت مبتنی بر داده که در آن از بانک اطلاعاتی اکسس استفاده می گردد ،می بایست تدابیر لازم در خصوص حفاظت از فایل بانک اطلاعاتی ( فایلی با انشعاب 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 ، نیز انجام داد. به منظور حفاظت یک فایل با انشعاب خاص ، می بایست دو مرحله اشاره شده را انجام داد . در صورتیکه هر یک از مراحل بدرستی پیکربندی نگردد، امکان مشاهده محتوی فایل توسط کاربران وجود خواهد داشت





نوع مطلب :
برچسب ها :
لینک های مرتبط :


دوشنبه 24 دی 1397 12:58 ب.ظ
Hello there! This is kind of off topic but I need
some help from an established blog. Is it very hard to set up your
own blog? I'm not very techincal but I can figure things out pretty
fast. I'm thinking about making my own but I'm not sure where to start.
Do you have any ideas or suggestions? Appreciate it
سه شنبه 18 دی 1397 12:21 ق.ظ
Hi there, I discovered your web site via Google even as searching for a comparable subject,
your web site got here up, it looks great.
I've bookmarked it in my google bookmarks.
Hi there, simply was aware of your weblog thru Google, and located that it's
really informative. I'm gonna be careful for brussels.
I will appreciate if you proceed this in future. Numerous
folks might be benefited from your writing. Cheers!
دوشنبه 17 دی 1397 08:03 ب.ظ
Howdy, i read your blog occasionally and i own a similar one and i was just wondering if you get a lot of spam responses?
If so how do you stop it, any plugin or anything you can advise?
I get so much lately it's driving me mad so any help is very much appreciated.
شنبه 15 دی 1397 11:22 ق.ظ
Fantastic goods from you, man. I've understand your stuff previous to and you're just extremely magnificent.

I actually like what you have acquired here, certainly like what
you are saying and the way in which you say it. You make it enjoyable and you still take care of to keep it sensible.
I cant wait to read much more from you. This is
really a great web site.
شنبه 8 دی 1397 11:56 ب.ظ
Great work! That is the kind of information that are supposed to
be shared across the net. Disgrace on the seek engines for now not positioning this submit upper!
Come on over and discuss with my site . Thank you =)
جمعه 17 فروردین 1397 06:27 ب.ظ

Great write ups. Thanks a lot.
click here cialis daily uk buy cialis female cialis no prescription cialis kaufen cialis uk next day cialis kaufen bankberweisung chinese cialis 50 mg cialis prezzo al pubblico cialis 5 mg achat cialis en itali
جمعه 3 فروردین 1397 02:20 ب.ظ

Really a lot of helpful tips!
viagra or cialis low cost cialis 20mg cialis 5mg when will generic cialis be available canadian cialis buy cialis cialis generico en mexico what is cialis buy cialis cheap 10 mg cialis online napol
سه شنبه 14 شهریور 1396 11:57 ق.ظ
I always emailed this blog post page to all my contacts,
for the reason that if like to read it next my contacts will too.
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر


درباره وبلاگ

سلام من آرش کاکاوند دانشجوی رشته کامپیوتر هستم و ورود شما رابه دنیای aspخوش امدمیگم.حتما نظر بدین تا من کارم رو بهتر ادامه بدم

مدیر وبلاگ : ارش کاکاوند
مطالب اخیر
نویسندگان
صفحات جانبی
نظرسنجی
شما کدام یک از برنامه های زیر را برای طراحی وب انتخاب می کنید؟








جستجو

آمار وبلاگ
کل بازدید :
بازدید امروز :
بازدید دیروز :
بازدید این ماه :
بازدید ماه قبل :
تعداد نویسندگان :
تعداد کل پست ها :
آخرین بازدید :
آخرین بروز رسانی :