
Password Protected Directories ช่วยล็อกโฟลเดอร์บนเว็บไซต์ด้วยรหัสผ่าน ผู้เข้าชมจะเห็น Popup ให้กรอก Username/Password ก่อนเข้าถึงเนื้อหา เหมาะสำหรับพื้นที่ Admin หรือเนื้อหาส่วนตัว
วิธีตั้งค่า Password Protection
- ล็อกอิน DirectAdmin แล้วไปที่ Advanced Features
- คลิก Password Protected Directories
- เลือกโฟลเดอร์ที่ต้องการป้องกัน เช่น
/public_html/admin - ตั้ง Directory Name (ชื่อที่แสดงใน Popup)
- คลิก Protect Directory
- เพิ่ม User โดยกรอก Username และ Password แล้วคลิก Add/Modify User
เพิ่มและลบผู้ใช้
สามารถเพิ่มหลาย 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 และไฟล์รหัสผ่านอยู่ที่ไหน ตัวอย่าง:
AuthType Basic— กำหนดประเภทของ Authentication เป็น HTTP BasicAuthName "Members Area"— ข้อความที่แสดงใน Popup ของ BrowserAuthUserFile /home/user/.htpasswd— Path ไปยังไฟล์รหัสผ่านRequire valid-user— กำหนดว่าต้องเป็น User ที่ถูกต้องในไฟล์ .htpasswd เท่านั้น
ไฟล์ .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 แยกกัน
- สามารถ Revoke Access ของ User คนใดคนหนึ่งได้โดยไม่ต้องเปลี่ยนรหัสผ่านของคนอื่น
- ตรวจสอบ Access Log ได้ว่า User คนไหนเข้าถึงไฟล์ใดเมื่อไหร่
- ง่ายต่อการจัดการเมื่อมีการเปลี่ยนแปลงสมาชิกทีม
- สามารถกำหนดรหัสผ่านที่มีความซับซ้อนต่างกันสำหรับแต่ละ 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:
Require ip 203.0.113.0/24— อนุญาตเฉพาะ IP Range นี้Require valid-user— และต้องมี Username/Password ที่ถูกต้อง- ใช้
RequireAllBlock เพื่อให้ทั้ง 2 เงื่อนไขต้องผ่านพร้อมกัน
ประโยชน์ของการผสม IP + Password
- ป้องกันการโจมตีแบบ Brute Force — ถึงแม้ Password จะรู้รั่วไหลก็ตาม ถ้า IP ไม่ตรง ก็เข้าไม่ได้
- ลด Attack Surface — Bot และ Hacker จากต่างประเทศที่ไม่รู้ IP Whitelist จะถูก Block ตั้งแต่ชั้นแรก
- เหมาะสำหรับ Remote Team — กำหนด IP ของ Office หรือ VPN ทีมงาน แล้วยังบวก Password เข้าไปอีกชั้น
- ใช้ IP ร่วมกับ HTTPS — เมื่อจำกัด IP แล้ว Traffic น้อยลงมาก ทำให้ SSL Certificate มีประสิทธิภาพสูงสุด
สำหรับเว็บไซต์ที่มี 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