GORAGOD.com

การป้องกันการแสดงรายชื่อไฟล์ของ Server ด้วย htaccess (Directory

โดยปกติแล้วถ้าเราทำการเรียกไดเร็คทอรี่ใดๆบน Server โดยที่ไดเร็คทอรี่นั้นๆไม่มี default page (เช่น index.php หรือ index.html) จะทำให้ Browser แสดงรายการไฟล์ทั้งหมดในไดเร็คทอรี่นั้นๆออกมา (Directory Listings) เช่น หากเราเรียก xxx.com/img/ Browser ก็จะทำการแสดงรายชื่อรูปทั้งหมดที่มีในโฟลเดอร์ img/ บน Server เป็นต้น

โดยปกติ Server สมัยใหม่มักจะปิดการทำงานในส่วนนี้ไว้ไม่ให้ทำงานครับ เพื่อเป็นการป้องกันการตรวจสอบว่ามีไฟล์ใดบน Server บ้าง (จาก Hacker) แต่เราก็สามารถควบคุมการเปิดปิด ได้ครับ ด้วย .htaccess

วิธีการง่ายสุดที่จะป้องกันการ list ไฟล์ ก็เพียงแค่สร้าง index.php หรือ index.html เปล่าๆไว้ในไดเร็คทอรี่(ทุกไดเร็คทอรี่) ครับ เนื่องจากโดยปกติแล้ว หากเราเรียกชื่อ ไดเร็คทอรี่ ใดๆ โดยไม่ระบุหน้าเพจ Server จะแสดงหน้านี้ก่อนเสมอ

วิธีที่ 2 กำหนดใน .htaccess
Options +Indexes

สำหรับเปิดใช้งาน แสดงลิสต์รายชื่อไฟล์
Options -Indexes

สำหรับปิดการใช้งาน ไม่ให้แสดงรายชื่อไฟล์ Server จะคืนค่า Error 403 มาแทนครับ

การกำหนดให้ไม่แสดงเฉพาะไฟล์บางนามสกุล เช่นไฟล์ รูปภาพ .jpg .gif
IndexIgnore *.jpg *.gif

Server จะไม่แสดงรายชื่อไฟล์รูปภาพ .jpg และ .gif (แต่ไฟล์อื่นยังแสดงตามปกติ) หรือ
IndexIgnore *

ซี่งจะมีผลเหมือนกับปิดการแสดง Directory Listing

การกำหนดให้ Server แสดงไฟล์ฺ index.html (หรือไฟล์ใดๆ) ในกรณีที่ไม่ระบุ page มา
DirectoryIndex index.html

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