ผู้เขียน หัวข้อ: Lock Directory User authentication ด้วย .htpasswd และ .htaccess  (อ่าน 3071 ครั้ง)

Sparrow

  • Global Moderator
  • Jr. Member
  • *****
  • กระทู้: 66
    • ดูรายละเอียด
Lock Directory User authentication ด้วย .htpasswd และ .htaccess
« เมื่อ: ตุลาคม 18, 2013, 09:33:35 pm »
เทคนิคการใช้ .htaccess สำหรับป้องกันการเข้าถึง Directory ของเรา โดยเราจะกำหนดเงื่อนไขให้สามารถเข้าถึง Directory นั้นได้จะต้องใส่ user และ password ก่อน

- หากไม่มีคำสั่ง htpasswd ติดตั้ง apache2-utils ด้วยคำสั่ง apt-get install apache2-utils
- enable mod_rewrite โดยใช้คำสั่ง a2enmod rewrite และต้อง restart apache2 ใหม่ด้วยคำสั่ง service apache2 restart

ตัวอย่าง ต้องการป้องการ Directory ที่มีชื่อว่า download

1. สร้าง Directory ดังกล่าวขึ้นมาก่อน หรือมีอยู่แล้วที่ชื่อ Directory อื่นก็ได้ครับ

โค๊ด: [Select]
root@authserv:/home/ustaff# mkdir /var/www/html/download
2. เข้าไปสร้างไฟล์ .htpasswd สำหรับไว้เก็บข้อมูล user password โดยใช้คำสั่ง htpasswd -c <file> <user>

โค๊ด: [Select]
root@authserv:/home/ustaff# htpasswd -c .htpasswd user1
New password: (พิม password เข้าไปครับ จะมองไม่เห็นเวลาพิม)
Re-type new password: (พิม password อีกครั้ง)
Adding password for user user1

ถ้าต้องการเพิ่ม user password อีกก็ใช้คำสั่ง htpasswd <file> <user>

โค๊ด: [Select]
root@authserv:/home/ustaff# htpasswd .htpasswd user2
New password:
Re-type new password:
Adding password for user user2

ตรวสอบไฟล์ .htpasswd ว่ามี user ที่สร้างไว้หรือไม่

โค๊ด: [Select]
root@authserv:/home/ustaff# cat .htpasswd
user1:edft23Hv7SfPw
user2:yxcf21Wq4ZfPg

ตรวจสอบสถานที่เก็บไฟล์ .htpasswd สำหรับเอาไปใช้ในไฟล์ .htaccess

โค๊ด: [Select]
root@authserv:/home/ustaff# pwd
/home/ustaff


3. สรา้งไฟล์ .htaccess สำหรับกำหนดเงื่อนไขการเข้าถึง Directory ทีชื่อว่า download

โค๊ด: [Select]
root@authserv:/home/ustaff# pico /var/www/html/download/.htaccess
เพิ่มเงือนไขดังนี้

โค๊ด: [Select]
AuthName "Secure Area"  # สั่งให้แสดงชื่อก่อนการใช้ user password
AuthType Basic
AuthUserFile /home/ustaff/.htpasswd # กำหนด path ของไฟล์ .htpasswd
require valid-user # กำหนดให้ทุก user ในไฟล์ .htpasswd เข้าใช้งานได้

Options All +Indexes # กำหนดเพื่อให้แสดง list file ใน directory

4. ปรับแต่งไฟล์ apache2 เปิดการทำงาน AllowOverride ที่ไฟล์ /etc/apache2/apache2.conf
โค๊ด: [Select]
<Directory /var/www/html/download/>
        Options Indexes FollowSymLinks
        AllowOverride all
        Require all granted
</Directory>

5.สั่งให้ apache2 ทำงานใหม่ด้วยคำสั่ง service apache2 restart

จากนั้นลองทดสอบ

http://localhost/download/
« แก้ไขครั้งสุดท้าย: พฤษภาคม 16, 2014, 08:46:23 pm โดย Sparrow »