วิธีซ่อนหมายเลขเวอร์ชัน 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
โดยที่ธง:
-head
– ส่งคำขอ HEAD สำหรับส่วนหัว mime-mime_header
– พิมพ์ส่วนหัว MIME ของเอกสารที่ดึงมาพร้อมกับแหล่งที่มา
หมายเหตุ: ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง lynx – เว็บเบราว์เซอร์บรรทัดคำสั่งไว้ในระบบของคุณ
แค่นั้นแหละ! ในบทความนี้ เราได้อธิบายวิธีซ่อนหมายเลขเวอร์ชัน PHP ในส่วนหัวการตอบกลับ HTTP ของเซิร์ฟเวอร์ เพื่อรักษาความปลอดภัยเว็บเซิร์ฟเวอร์จากการโจมตีที่อาจเกิดขึ้น คุณสามารถเพิ่มความคิดเห็นในโพสต์นี้หรือถามคำถามที่เกี่ยวข้องผ่านแบบฟอร์มความคิดเห็นด้านล่าง