Nine MVP's Blog

05/04/2014

Secure Server Side Information

Filed under: ASP.NET, ASP.NET MVC, Core System, WEB, Web Security — Nine MVP @ 4:24 pm

เนื่องจากเคยกล่าวไว้ไปหลายรอบในกลุ่ม Facebook เรื่องการปิด Server side information เพื่อความปลอดภัย ลดภาวะเสี่ยงที่จะถูกโจมตีจากช่องโหว่ของ software และ OS เอง

ตัวอย่าง  หลังจากที่ผมได้ยิง request ไปที่ website แห่งนึง ผมลองดู HTTP Header ที่ส่งกลับมาจะพบรายละเอียดดังภาพ

4-5-2014 3-48-28 PM

มาบทความนี้จะช่วยระบุวิธีการปิด HTTP Response Header ที่ส่งออกมาจากฝั่ง Server ไปยัง Client

 

3 ขั้นตอนลับลวงพราง สู่ความปลอดภัยระดับพื้นฐาน

 

1. ลบหรือลวงค่า header X-Powered-By : ASP.NET

ให้ไปแก้ไขใน IIS เปิด website ที่ต้องการมาแก้ไข กดเลือกที่ website ตามรูปด้านล่าง

4-5-2014 3-33-13 PM

4-5-2014 3-35-49 PM

เป็นอันสำเร็จ

 

2. ลบหรือลวงค่า header Server : Microsoft-IIS/8.0 และ X-AspNet-Version : 4.0.xxxx

สร้าง class ขึ้นมาตัวนึง แล้ว inherit IHttpModule Interface เพื่อลบหรือแก้ไขค่าของ Server header

public class SecureInfoModule : IHttpModule
{
    public void Init(HttpApplication context)
    {
        context.PreSendRequestHeaders += OnPreSendRequestHeaders;
    }
 
    public void Dispose() { }
 
    void OnPreSendRequestHeaders(object sender, EventArgs e)
    {
        HttpContext.Current.Response.Headers.Set("Server", "I don't know ..."); //ใส่ข้อความถึง hacker
    }
}

ต่อจากนั้นนำ module ที่สร้างไว้มา register ลงใน webserver tag
ให้เปิด Web.Config มาแก้ไขกำหนดสั่งปิดการแสดงผล version ของ http runtime

<system.web>
  <httpRuntime enableVersionHeader="false"/>
 ....
 </systen.web>
 นำ class module ที่สร้างไว้ มาใส่ใน webServer tag
 <system.webServer>
 <modules>
 <add name="SecureInfoModule" type="ใส่  namespace ให้ตรง.SecureInfoModule" />
 .........
 </modules>
 </system.webServer>

 

3. ลบหรือลวงค่า X-AspNetMvc-Version : 4.0

เปิดโปรเจ็คใน Visual Studio มองหา Global.asax.cs เปิดมาใส่โค้ด

protected void Application_Start()
{
    MvcHandler.DisableMvcResponseHeader = true;
    .....
}

 

หวังว่าจะเป็นประโยชน์สำหรับเหล่าสาวก .NET  :D

2 Comments »

  1. แจ่มไปเลยครับคุณ nine (*__*)

    Comment by sompukaaa — 05/04/2014 @ 4:42 pm

    • ขอบคุณครับ ตอนแรกจะไม่โพสในที่ blog นี้ละแต่เว็บใหม่ ไส้เลื่อนเลยจำต้องรื้อมาโพสใหม่

      Comment by Nine MVP ASP.NET — 05/04/2014 @ 4:48 pm


RSS feed for comments on this post. TrackBack URI

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Create a free website or blog at WordPress.com.

%d bloggers like this: