Điều Hướng Bảo Mật Website Bằng Htaccess

htaccess không còn gì là xa lạ với tất cả các bạn thiết kế web php và các bạn sử dụng, chức năng quan trọng nhất của nó chính là điều chỉnh lại đường dẫn thân thiện với người dùng. Trong bài viết này mình sẽ hướng dẫn các bạn sử dụng htaccess để điều hướng và bảo mật website.

Việc đầu tiên chúng ta cần làm là bật chức năng rewrite lên bằng cách thêm đoạn dưới vào đầu file .htaccess

Options +FollowSymlinks  RewriteEngine on

Chuyển Hướng

Các website hiện nay hầu như đều có tính năng này, ví dụ bạn đang truy cập vào một đường dẫn mà nội dung đó không tồn tại trên website thì trình duyệt quay một hồi lâu rồi trả về lỗi 404 mặc định của trình duyệt, chúng ta chuyển hướng nó đến một file mà chúng ta tạo sẵn và hiển thị theo cách chúng ta muốn nhằm thân thiện với người dùng, tốt cho Seo…

sau đây là đoạn code ví dụ về chuyển hướng khi lỗi 404

Options +FollowSymlinks  RewriteEngine on  ErrorDocument 404 http://www.abc.com/404.html

như trong ví dụ trên khi nội dung bị lỗi và nhận được kết quả trả về là 404 thì sẽ chuyển đến file 404.html, chúng ta tạo ra file này, thiết kế giao diện theo cách của chúng ta.

Ngoài lỗi 404 chúng ta có thể thiết kế riêng cho từng trường hợp mà chúng ta muốn như đoạn code bên dưới

ErrorDocument 401 /error_401.html  ErrorDocument 403 /error_403.html  ErrorDocument 404 /error_404.html  ErrorDocument 400 /error_400.html

chúng ta nên sử dụng đường dẫn tương đối như trên để khi chúng ta thay đổi tên miền thì file .htaccess vẫn có thể hoạt động được.

Hiển Thị Trang index.html Giả

Đây là một yếu tố rất quan trọng trong bảo mật, ví dụ trong trường hợp người nào đó truy cập vô một thư mục mà ở đó không có file index.html hoặc index.php thì nó sẽ hiện tất cả các thư mục, file hiện có. Người dùng có thể dễ dàng nhìn thấy cấu trúc website và những file nhạy cảm cũng dễ dàng nhìn thấy, bạn đâu có muốn người lạ biết rõ đường đi và mọi ngóc ngách trong nhà của bạn đúng k?

Options All -Indexes  # dòng lệnh sẽ hiện một thông báo Forbidden thay vì liệt kê các danh mục và file

Thiết Lập Trang Mặc Định Mới

Thông thường thì trang mặc định sẽ là index.html hoặc là index.php, bạn có thể thay đổi tên khác nếu như bạn muốn bằng dòng lệnh sau:

DirectoryIndex newindex.html

Bạn có thể đổi thành bất kỳ tên gì bạn muốn không nhất thiết thiết là “newindex.html”

Bảo Vệ Các File Nhạy Cảm Và Quan Trọng

Trong website của chúng ta có ít nhất 1 file cần giấu đi ví dụ như: file cấu hình kết nối ( config.php, wp-config.php, .htccess, index.php…) tùy theo mô hình website khác nhau mà các file sẽ khác nhau.

Để bảo vệ file chúng ta làm như sau

# bảo vệ file .htccess  <Files .htaccess>  Order Allow,Deny  Deny from all  </Files>    # bảo vệ file wp-config  <Files wp-config.php>  Order Allow,Deny  Deny from all  </Files>

Nếu người khác chiếm được file .htccess thì có thể điều hướng, phân quyền, truy cập vào các thư mục và các file khác, hoặc file cấu hình chứa các kết nối tới mysql và các thông tin quan trọng khác.

Các bạn có thể thay .htccess hoặc wp-config.php thành file mà bạn muốn và cùng cấp với file htaccess nhé.

Đặt Mật Khẩu Cho Folder

Thư mục admin để quản trị website là thư mục quan trọng nhất trong website, nên các bạn cần đặt mật khẩu để bảo vệ, chống những kẻ xấu xâm nhập trái phép.

Đầu tiên bạn tạo file tên là .htpasswd tại vị trí /demo/htpasswd với cấu trúc như sau: MyUsername:MyPassword

MyUsername: bạn có thể đặt bất kỳ  tên nào mà bạn muốn.

MyPassword: mật khẩu mã hóa, bạn có thể tạo file .htpasswd  online tại http://www.htaccesstools.com/htpasswd-generator/

Sau đó trong file htaccess bạn thêm đoạn sau để bảo vệ file:

# thông báo khi bắt đăng nhập  AuthName "Ban phai nhap username va  pass de tiep tuc"  AuthType Basic  # nơi chứa file .htpasswd tính từ file htaccess  AuthUserFile /demo/.htpasswd   AuthGroupFile /dev/null  # file cần được bảo vệ  <Files admin.php>  require valid-user  </Files>

Bạn có thể bảo vệ đồng thời nhiều file bằng cấu trúc <Files admin.php, admin2.php>

Nếu bạn bảo vệ thư mục thì bạn dời file .htaccess vào trong thư mục muốn bảo vệ, nội dung file như sau:

AuthName "Ban phai nhap username va  pass de tiep tuc"  AuthType Basic  AuthUserFile /demo/.htpasswd  require valid-user

Chống Chạy File – Lấy Hình Ảnh Qua Website Khác

Trong nhiều trường hợp người khác copy bài viết của bạn và vẫn để nguyên đường dẫn hình ảnh của bạn để tiết kiệm được băng thông, dung lượng và tăng tốc. Bạn làm cách sau để ngăn chặn nhé

#chong trom file  RewriteEngine on  RewriteCond % !^$  RewriteCond % !^http://(www\.)?tenmiencuaban.com/.*$ [NC]  RewriteRule \.(gif|jpg|png)$ – [F]  RewriteRule \.(gif|jpg|png)$ http://www.tenmiencuaban.com/file.jpg [R,L]

Loại Bỏ, Thêm WWW Trên Đường Dẫn

Đây là một yếu tố khá quan trọng trong SEO, nếu hai đường dẫn khác nhau nhưng nội dung giống nhau thì bạn bị phạm lỗi trùng lập nội dung, nên chúng ta cần đưa nó về một đường dẫn duy nhất để tối ưu web chúng ta lại.

RewriteEngine On  RewriteBase /  RewriteCond %{HTTP_HOST} !^tenmiencuaban.com$ [NC]  RewriteRule ^(.*)$ http://tenmiencuaban.com/$1 [L,R=301]

hoặc bạn có thể thêm www vào cũng được

RewriteEngine on  RewriteCond %{HTTP_HOST} ^tenmiencuaban.com  RewriteRule ^(.*)$ http://www.tenmiencuaban.com/$1 [R=permanent,L]

Tổng Kết: đây là một yếu tố rất quan trọng nếu như bạn đang sử dụng apache làm web server cho bạn, bạn cần lưu ý là trước khi chạy các dòng lệnh trên thì bạn phải bật mod rewrite lên trước nhé.