วิธีตั้งค่า Password Protected Directories ใน DirectAdmin

Password Protected Directories ช่วยล็อกโฟลเดอร์บนเว็บไซต์ด้วยรหัสผ่าน ผู้เข้าชมจะเห็น Popup ให้กรอก Username/Password ก่อนเข้าถึงเนื้อหา เหมาะสำหรับพื้นที่ Admin หรือเนื้อหาส่วนตัว

วิธีตั้งค่า Password Protection

  1. ล็อกอิน DirectAdmin แล้วไปที่ Advanced Features
  2. คลิก Password Protected Directories
  3. เลือกโฟลเดอร์ที่ต้องการป้องกัน เช่น /public_html/admin
  4. ตั้ง Directory Name (ชื่อที่แสดงใน Popup)
  5. คลิก Protect Directory
  6. เพิ่ม User โดยกรอก Username และ Password แล้วคลิก Add/Modify User
หน้า Password Protected Directories แสดงโฟลเดอร์ที่ป้องกันด้วยรหัสผ่าน
หน้า Password Protected Directories แสดงโฟลเดอร์ที่ป้องกันด้วยรหัสผ่าน
กดปุ่ม Protect (วงแดง) และเลือกโฟลเดอร์ที่ต้องการป้องกัน
กดปุ่ม Protect (วงแดง) และเลือกโฟลเดอร์ที่ต้องการป้องกัน
กรอกชื่อผู้ใช้และรหัสผ่านสำหรับโฟลเดอร์นั้น แล้วกด Save
กรอกชื่อผู้ใช้และรหัสผ่านสำหรับโฟลเดอร์นั้น แล้วกด Save

เพิ่มและลบผู้ใช้

สามารถเพิ่มหลาย User ให้เข้าโฟลเดอร์เดียวกันได้ โดยแต่ละ User มี Username/Password เป็นของตัวเอง ลบ User ได้โดยคลิก Delete ข้างชื่อ User

วิธีปิดการป้องกัน

คลิก Unprotect Directory เพื่อยกเลิกการป้องกัน โฟลเดอร์จะกลับมาเข้าถึงได้สาธารณะ

หมายเหตุ: Password Protection นี้ใช้ Apache Basic Authentication ผ่าน .htaccess และ .htpasswd ไม่เหมาะสำหรับเนื้อหาที่ต้องการความปลอดภัยระดับสูง ควรใช้ HTTPS ร่วมด้วยเสมอ

Password Protected Directories คืออะไรและทำงานอย่างไร

Password Protected Directories เป็นฟีเจอร์ที่ใช้ความสามารถของ Apache Web Server ในการจำกัดการเข้าถึงโฟลเดอร์บนเว็บไซต์โดยกำหนดให้ต้องมีการยืนยันตัวตนก่อน กลไกนี้เรียกว่า HTTP Basic Authentication ซึ่งทำงานโดยอาศัยไฟล์ 2 ไฟล์:

ไฟล์ .htaccess

ไฟล์ .htaccess อยู่ในโฟลเดอร์ที่ต้องการป้องกัน มีหน้าที่บอก Apache ว่าโฟลเดอร์นี้ต้องการ Authentication และไฟล์รหัสผ่านอยู่ที่ไหน ตัวอย่าง:

ไฟล์ .htpasswd

ไฟล์ .htpasswd เก็บรายการ Username และ Password ที่ผ่านการ Hash แล้ว (ด้วย bcrypt หรือ MD5) แต่ละบรรทัดคือ User 1 คน เช่น admin:$apr1$xyz... Apache จะเปรียบเทียบ Password ที่ผู้ใช้กรอกกับ Hash ในไฟล์นี้ทุกครั้งที่มีการ Login ข้อดีคือไฟล์นี้ไม่ได้เก็บ Password จริง ทำให้แม้มีคนเข้าถึงไฟล์ได้ก็ไม่สามารถรู้รหัสผ่านจริงได้โดยตรง

เมื่อผู้เข้าชม Navigate ไปยัง URL ในโฟลเดอร์ที่ป้องกัน Apache จะส่ง HTTP 401 Unauthorized Response ทำให้ Browser แสดง Popup ให้กรอก Credential ถ้ากรอกถูกต้อง Apache จะอนุญาตให้เข้าถึงเนื้อหาได้ตลอด Browser Session นั้น

การจัดการ User หลายคนใน Protected Directory

ในสภาพแวดล้อมจริงมักต้องการให้หลายคนเข้าถึงโฟลเดอร์ที่ป้องกันได้ .htpasswd รองรับ User หลายคนได้โดยไม่จำกัดจำนวน ซึ่งเป็นข้อดีสำคัญเมื่อเทียบกับการใช้รหัสผ่านร่วมกัน (Shared Password)

การเพิ่ม User ใหม่

ใน DirectAdmin ให้ไปที่ Password Protected Directories เลือกโฟลเดอร์ที่ต้องการ แล้วกรอก Username และ Password ในส่วน "Add User" แล้วกด Save DirectAdmin จะ Hash รหัสผ่านและเพิ่มบรรทัดใหม่ใน .htpasswd อัตโนมัติ User ใหม่สามารถ Login ได้ทันที

การเปลี่ยน Password ของ User

ใส่ Username เดิมพร้อม Password ใหม่แล้วกด Save DirectAdmin จะอัพเดต Hash ใน .htpasswd โดยอัตโนมัติ ไม่จำเป็นต้องลบ User ออกก่อน

การลบ User

ในหน้า Password Protected Directories จะเห็นรายชื่อ User ทั้งหมดที่มีสิทธิ์เข้าถึงโฟลเดอร์นั้น คลิก Delete ข้างชื่อ User ที่ต้องการลบออก DirectAdmin จะลบบรรทัดของ User นั้นออกจาก .htpasswd ทันที User ที่ถูกลบจะไม่สามารถ Login ได้อีกต่อไป

ข้อดีของการมี User แยกกัน

ข้อจำกัดของ HTTP Basic Auth

แม้ HTTP Basic Authentication จะสะดวกและง่ายต่อการตั้งค่า แต่มีข้อจำกัดสำคัญที่ต้องเข้าใจก่อนนำไปใช้กับข้อมูลสำคัญ

การส่ง Credential แบบ Plain Text บน HTTP

HTTP Basic Auth เข้ารหัส Username และ Password ด้วย Base64 Encoding เท่านั้น ซึ่งไม่ใช่การเข้ารหัสจริง แต่เป็นแค่การแปลงรูปแบบข้อมูล Base64 สามารถถอดรหัสได้ในทันทีด้วยเครื่องมือทั่วไป ดังนั้น ถ้าการสื่อสารไม่ได้ใช้ HTTPS (SSL/TLS) ผู้ที่คอย Intercept Traffic บนเครือข่ายเดียวกัน (เช่น WiFi สาธารณะ) สามารถดู Credential ได้โดยตรง

นี่คือเหตุผลที่ต้องใช้ HTTPS ร่วมกับ Password Protection เสมอ เมื่อมี SSL/TLS การสื่อสารทั้งหมดรวมถึง Credential จะถูกเข้ารหัสก่อนส่งออกจาก Browser ทำให้ Base64 ไม่เป็นปัญหาอีกต่อไป

ไม่มีระบบ Session Management

HTTP Basic Auth ไม่มีแนวคิดของ "Logout" จริงๆ Browser จะจำ Credential ไว้ใน Session จนกว่าจะปิด Tab หรือ Browser หรือ Cache หมดอายุ ซึ่งหมายความว่าถ้าผู้ใช้ใช้คอมพิวเตอร์สาธารณะและลืม Close Browser ผู้อื่นสามารถเข้าถึงพื้นที่นั้นได้ต่อไป

ข้อจำกัดด้านการใช้งาน

HTTP Basic Auth เหมาะสำหรับการป้องกันชั่วคราว เช่น Staging Site, พื้นที่ Admin เพิ่มเติม หรือเนื้อหาที่ต้องการจำกัดการเข้าถึงแบบง่ายๆ สำหรับระบบที่ต้องการความปลอดภัยระดับสูง เช่น ข้อมูลทางการเงิน หรือข้อมูลส่วนตัวของลูกค้า ควรใช้ระบบ Authentication ระดับ Application (Login System ของ PHP/Node.js) ที่มีการจัดการ Session, Rate Limiting, CSRF Protection และ Audit Log

ทำไมต้องเปิด SSL ก่อนใช้ Password Protection

HTTP Basic Authentication ส่ง Username และ Password ผ่าน Header ในรูปแบบ Base64 Encoding ซึ่งเป็นเพียงการแปลงรูปแบบข้อมูล ไม่ใช่การเข้ารหัสจริง หากเว็บไซต์ไม่ได้ใช้ HTTPS ผู้ที่อยู่บนเครือข่ายเดียวกัน (เช่น WiFi สาธารณะหรือ ISP ที่ถูก Compromise) สามารถ Sniff Network Traffic และเห็น Credential ได้ทันที ดังนั้น ขั้นตอนสำคัญที่ต้องทำก่อนเปิดใช้ Password Protection คือการติดตั้ง SSL Certificate เพื่อให้การส่งข้อมูลทั้งหมดรวมถึง Login Credential ถูกเข้ารหัสด้วย TLS ก่อนออกจาก Browser โดยสมบูรณ์

ทางเลือกอื่น: IP Restriction ร่วมกับ Password Protection

เพื่อเพิ่มความปลอดภัยมากขึ้น สามารถผสมผสาน IP Restriction เข้ากับ Password Protection ได้โดยแก้ไขไฟล์ .htaccess โดยตรง วิธีนี้เรียกว่า Defense in Depth หรือการป้องกันหลายชั้น

IP Whitelist ร่วมกับ Password

ตั้งค่าให้เข้าถึงได้เฉพาะ IP ที่กำหนดเท่านั้น และยังต้องกรอก Password ด้วย ตัวอย่าง .htaccess:

ประโยชน์ของการผสม IP + Password

สำหรับเว็บไซต์ที่มี Admin Panel สำคัญ เช่น WordPress Dashboard หรือ E-Commerce Backend การผสม IP Restriction + Password Protection ถือเป็น Best Practice ที่ช่วยลดความเสี่ยงได้มากโดยไม่ต้องพึ่ง Third-party Security Plugin เพิ่มเติม

ต้องการ Hosting พร้อม SSL ฟรี?

AsiaGB Hosting รองรับ SSL ฟรี พร้อม Password Protection และ .htaccess ทุกแพ็กเกจ

ดูแพ็กเกจ Hosting