ค้นหาเว็บไซต์

วิธีซ่อนหมายเลขเวอร์ชัน PHP ในส่วนหัว HTTP


ตามค่าเริ่มต้น การกำหนดค่า PHP อนุญาตให้ส่วนหัวการตอบสนอง HTTP ของเซิร์ฟเวอร์ 'X-Powered-By' เพื่อแสดงเวอร์ชัน PHP ที่ติดตั้งบนเซิร์ฟเวอร์

เพื่อเหตุผลด้านความปลอดภัยของเซิร์ฟเวอร์ (แม้ว่าจะไม่ใช่ภัยคุกคามสำคัญที่ต้องกังวล) ขอแนะนำให้คุณปิดการใช้งานหรือซ่อนข้อมูลนี้จากผู้โจมตีที่อาจกำหนดเป้าหมายเซิร์ฟเวอร์ของคุณโดยต้องการทราบว่าคุณใช้งาน PHP หรือไม่

สมมติว่า PHP เวอร์ชันใดเวอร์ชันหนึ่งที่ติดตั้งบนเซิร์ฟเวอร์ของคุณมีช่องโหว่ด้านความปลอดภัย และในอีกด้านหนึ่ง ผู้โจมตีจะรู้เรื่องนี้ ก็จะกลายเป็นเรื่องง่ายสำหรับพวกเขาในการใช้ประโยชน์จากช่องโหว่และเข้าถึงเซิร์ฟเวอร์ผ่านสคริปต์

ในบทความก่อนหน้าของฉัน ฉันได้แสดงวิธีซ่อนหมายเลขเวอร์ชัน apache ซึ่งคุณได้เห็นวิธีปิดเวอร์ชันที่ติดตั้ง apache แล้ว แต่ถ้าคุณใช้ PHP ในเว็บเซิร์ฟเวอร์ apache ของคุณ คุณจะต้องซ่อนเวอร์ชันที่ติดตั้ง PHP ด้วย และนี่คือสิ่งที่เราจะแสดงในบทความนี้

ดังนั้นในโพสต์นี้ เราจะอธิบายวิธีซ่อนหรือปิดการแสดงหมายเลขเวอร์ชัน PHP ในส่วนหัวการตอบกลับ HTTP ของเซิร์ฟเวอร์

การตั้งค่านี้สามารถกำหนดค่าได้ในไฟล์การกำหนดค่า PHP ที่โหลด ในกรณีที่คุณไม่ทราบตำแหน่งของไฟล์ปรับแต่งนี้บนเซิร์ฟเวอร์ของคุณ ให้รันคำสั่งด้านล่างเพื่อค้นหา:

php -i | grep "Loaded Configuration File"
---------------- On CentOS/RHEL/Fedora ---------------- 
Loaded Configuration File => /etc/php.ini

---------------- On Debian/Ubuntu/Linux Mint ---------------- 
Loaded Configuration File => /etc/php/7.0/cli/php.ini

ก่อนที่จะทำการเปลี่ยนแปลงใดๆ กับไฟล์การกำหนดค่า PHP ฉันขอแนะนำให้คุณสำรองข้อมูลไฟล์การกำหนดค่า PHP ของคุณก่อน ดังนี้:

---------------- On CentOS/RHEL/Fedora ---------------- 
sudo cp /etc/php.ini /etc/php.ini.orig

---------------- On Debian/Ubuntu/Linux Mint ---------------- 
sudo cp /etc/php/7.0/cli/php.ini  /etc/php/7.0/cli/php.ini.orig  

จากนั้นเปิดไฟล์โดยใช้โปรแกรมแก้ไขที่คุณชื่นชอบพร้อมสิทธิพิเศษสำหรับผู้ใช้ขั้นสูงดังนี้:

---------------- On CentOS/RHEL/Fedora ---------------- 
sudo vi /etc/php.ini

---------------- On Debian/Ubuntu/Linux Mint ---------------- 
sudo vi /etc/php/7.0/cli/php.ini

ค้นหาคำหลัก expose_php และตั้งค่าเป็น ปิด:

expose_php = off

บันทึกไฟล์และออก หลังจากนั้นให้รีสตาร์ทเว็บเซิร์ฟเวอร์ดังนี้:

---------------- On SystemD ---------------- 
sudo systemctl restart httpd
sudo systemctl restart apache2 

---------------- On SysVInit ---------------- 
sudo service httpd restart
sudo service apache2 restart

สุดท้ายแต่ไม่ท้ายสุด ตรวจสอบว่าส่วนหัวการตอบกลับ HTTP ของเซิร์ฟเวอร์ยังคงแสดงหมายเลขเวอร์ชัน PHP ของคุณโดยใช้คำสั่งด้านล่างหรือไม่

lynx -head -mime_header http://localhost 
OR
lynx -head -mime_header http://server-address

โดยที่ธง:

  1. -head – ส่งคำขอ HEAD สำหรับส่วนหัว mime
  2. -mime_header – พิมพ์ส่วนหัว MIME ของเอกสารที่ดึงมาพร้อมกับแหล่งที่มา

หมายเหตุ: ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง lynx – เว็บเบราว์เซอร์บรรทัดคำสั่งไว้ในระบบของคุณ

แค่นั้นแหละ! ในบทความนี้ เราได้อธิบายวิธีซ่อนหมายเลขเวอร์ชัน PHP ในส่วนหัวการตอบกลับ HTTP ของเซิร์ฟเวอร์ เพื่อรักษาความปลอดภัยเว็บเซิร์ฟเวอร์จากการโจมตีที่อาจเกิดขึ้น คุณสามารถเพิ่มความคิดเห็นในโพสต์นี้หรือถามคำถามที่เกี่ยวข้องผ่านแบบฟอร์มความคิดเห็นด้านล่าง