1 min read

ลบชื่อ Server ออกจาก response header (Nginx)

ลบชื่อ Server ออกจาก response header (Nginx)

เปิดบทความแรกของ blog นี้กันด้วยเจ้านี่ละกันครับ อาจจะเป็นแค่เรื่องง่ายๆ แต่จริงๆก็สำคัญอยู่นะ เพราะ server มันจะแสดงว่าเราใช้ของอะไร เป็น version ไหน ซึ่งเมื่อเราใช้ไปนานๆ มันอาจจะมีช่องโหว่ใน version ที่เราใช้อยู่ ทำให้ระบบเราอาจถูกเจาะได้

Nginx โดยปกติแล้วค่า Default ของมันจะส่งข้อมูล server ออกไปทาง header ตัวอย่างเช่น Server: nginx/1.14.0

ซึ่งวิธีแรกเราสามารถซ่อน version ได้ง่ายๆผ่าน config ของ Nginx ได้เลย

server {
  ...
  server_tokens   off;
  ...
}

วิธีนี้ผลที่ได้คือ version จะหายไปเหลือแค่ server ตัวอย่าง Server: nginx

และแน่นอน บางคนอาจจะยังอยากเอาออกไปเลย ผมเลยมีวิธีเพิ่มเติมให้ครับ ... ตัวอย่างนี้ผมใช้ debian

sudo apt-get update
sudo apt-get install nginx-extras

และในส่วน config ของ Nginx

server {
  ...
  server_tokens   off;
  more_clear_headers Server;
  ...
}

เมื่อทำการ reload Nginx แล้ว ผลที่ได้มาคือ Server หายไปแล้ว 🎉

เป็นยังไงกันบ้างครับ ง่ายไหม หวังว่าบทความแรกของ blog นี้จะช่วยหลายๆคนที่กำลังหาวิธีกันอยู่นะครับ และผมจะพยายามนำปัญหา หรือความรู้ต่างที่เจอในงาน หรือจากที่หาความรู้มาแบ่งปันเรื่อยๆนะครับ ขอบคุณที่เข้ามาอ่านครับ ☺️