اندازهی قلم متن
تخمین مدت زمان مطالعهی مطلب:
یک دقیقه
در تکمیل این مطلب برای حذف هدرهای مربوط به وب سرور در برنامههای ASP.NET MVC از روش زیر میتوانیم استفاده کنیم.
در حالت پیش فرض تمام پاسخهای که به سمت سرور ارسال میشوند به همراه خود یک سری جزئیات را نیز منتقل میکنند.
برای یک وب اپلیکیشن APS.NET MVC این هدرها را داریم :
- Server: که توسط IIS اضافه میشود.
- X-AspNet-Version: که در زمانFlush در httpresponse اضافه میشود.
- X-AspNetMvc-Version: که توسط MvcHandler در System.Web.dll اضافه میشود.
- X-Powered-By: این مورد نیز توسط IIS اضافه میشود.
هکرها از اینکه فریم ورک مورد استفاده چه چیزی است خوشحال خواهند شد: اگر سرور شما برای مدتی Update نشده باشد و یک آسیب پذیری امنیتی بزرگ برای ورژن فریم ورکی که استفاده میکنید پیدا شود در نتیجه به هکرها برای رسیدن به هدفشان کمک کرده اید.
به علاوه این هدرها فضایی را برای تمام پاسخها در نظر میگیرند (البته در حد چندین بایت ولی در اینجا بحث برروی Optimization است).
برای حذف این هدرها باید مراحل زیر را انجام دهیم:
- حذف کردن هدر Server : به Global.asax.cs رفته و رویداد Application_PreSendRequestHeaders با کد زیر را به آن اضافه کنید :
protected void Application_PreSendRequestHeaders(object sender, EventArgs e) { var app = sender as HttpApplication; if (app == null || !app.Request.IsLocal || app.Context == null) return; var headers = app.Context.Response.Headers; headers.Remove("Server"); }
- حذف کردن هدر X-AspNetMvc-Version: در فایل Global.asax.cs به رویداد Application_Start این کد زیر را اضافه کنید :
protected void Application_Start() { ... MvcHandler.DisableMvcResponseHeader = true; ... }
- حذف کردن هدر X-AspNet-Version: به فایل Web.Config مراجعه کرده و این المنت را در داخل system.web اضافه کنید:
<system.web> ... <httpRuntime enableVersionHeader="false" /> ... </system.web>
- حذف کردن هدر X-Powered-By: در داخل فایل Web.Config در داخل system.webServer این خطوط را اضافه کنید:
<system.webServer> ... <httpProtocol> <customHeaders> <remove name="X-Powered-By" /> </customHeaders> </httpProtocol> ... </system.webServer>
با انجام مراحل فوق پاسخهای سرور سبکتر شده و در نهایت حاوی اطلاعات مهم در مورد ورژن فریم ورک نمیباشد.