การป้องกันการแสดงรายชื่อไฟล์ของ 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 ก็ได้
ผู้เขียน goragod โพสต์เมื่อ 03 พ.ย. 2552 เปิดดู 20,804 ป้ายกำกับ .htaccess
^