ฉันคิดอยู่เสมอว่าหากมีการเข้าถึงไฟล์ในรูปแบบ .rar ไฟล์นั้นจะถูกเปิดเป็นไฟล์แนบ แต่ไฟล์ในรูปแบบ *.php.rar ล่ะ?
ฉันลองวันนี้ Apache รันมันเป็น php จริงๆ ทำไมสิ่งนี้ถึงเกิดขึ้น?
ปรากฎว่าทุกครั้งที่พบไฟล์ที่มีส่วนต่อท้ายคู่ (เช่น xxx.php.rar) Apache จะตรวจสอบส่วนต่อท้ายสุดท้ายในไฟล์ conf/mime.types หากไม่ได้กำหนดส่วนต่อท้ายสุดท้ายไว้ในไฟล์ mime.types จากนั้นใช้ส่วนต่อท้ายก่อนหน้าในการตีความ เนื่องจากตามค่าเริ่มต้น rar ไม่ได้ถูกกำหนดไว้ใน mime.types ดังนั้น Apache จะใช้ส่วนต่อท้าย php เพื่อตีความไฟล์
เรารู้ว่าโดยทั่วไปเซิร์ฟเวอร์ของเว็บไซต์จะอนุญาตให้อัปโหลดไฟล์แนบ rar และอาจคงชื่อไฟล์ดั้งเดิมไว้ เป็นผลให้เซิร์ฟเวอร์มีความเสี่ยงด้านความปลอดภัยสูง
ตอนนี้เราได้ค้นพบปัญหาแล้ว เราจะปล่อยให้ apache รันไฟล์ *.php.rar เป็นไฟล์แนบได้อย่างไร
1. แก้ไขไฟล์ mime.types และเพิ่มไฟล์ที่ส่วนท้าย:
แอปพลิเคชั่น/rar rar
จากนั้นรีสตาร์ท Apache แล้วคุณก็ทำได้