Bài 02: Kiểm soát và bảo mật website với htaccess

Trong phần này ta sẽ tìm hiểu một số quy tắc giúp trang web được an toàn, kiểm soát được website và tìm hiểu một số tính năng căn bản tốt cho SEO.

Lưu ý: Trong các ví dụ đoạn code nào được bôi xanh là đoạn code ta có thể chỉnh sửa theo ý mình

Bật chức năng Rewrite

Đây là bước đầu tiên để ta thao tác với fiel .htaccess. Để bật chức năng rewrite này ta chỉ cần thêm một đoạn code nhỏ lên đầu file .htacess như sau:

Options +FollowSymlinks
RewriteEngine on

Xử lý Chuyển hướng lỗi

Một trong những ứng dụng phổ biến của htaccess là xử lý các lỗi như lỗi không tìm thấy dữ liệu hoặc lỗi không theo được. Các lỗi này được thể hiện thông qua các con số mà máy chủ đáp trả. Lỗi thông dụng nhất là lỗi không tìm thấy dữ liệu 404. Lỗi này sẽ xuất hiện tùy theo trình duyệt nhìn rất là khó chịu, điều này đối với các bộ máy tìm kiếm như google rất ghét. Để giải quyết vấn đề này ta có thể sử dụng file .htaccess để chuyển hướng. Điều này rất quan trọng với SEO vì:

  1. Nếu ta chuyển hướng tốt với báo cáo 301, tức là thông báo không có gì ở link vừa vào và chuyển hướng qua link khác, như vậy sẽ công cụ search engines sẽ hiểu đây không phải là url không tồn tại.
  2. Thân thiện với người dùng vì nếu ta có một trang thông báo lỗi thì người dùng sẽ hiểu họ đang đi vào một đường dẫn không tồn tại, cộng với một số hướng dẫn quay trở lại ở trang thông báo lỗi sẽ giúp người dùng cảm thấy dễ chịu hơn.

Để điều hướng các trang lỗi đương nhiên trước tiên ta phải tạo một số trang thông báo lỗi. Điều này đối với một số CMS như wordpress hay các Framwork như Codeigniter có sẵn cho chúng ta nhưng không đẹp lắm.

Ví dụ file chuyển hướng lỗi 404

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

Đoạn code trên từ khóa ErrorDocument có ý nghĩa là nếu url request bị lỗi  thì xử lý chuyển hướng. Ở đây lỗi có hiệu lực là 404 và link  chuyển hướng là  http://www.example.com/404.html.

Ví dụ trên tôi đã dùng một địa chỉ đầy đủ (tức là địa chỉ có full url) nhưng nếu ta để ở dạng local thì hay hơn. Ví dụ:

ErrorDocument 401 /errir_401.html

ErrorDocument 403 / errir_403.html

ErrorDocument 404 / errir_404.html

ErrorDocument 400 / errir_400.html

Các con số lỗi trên có ý nghĩa như sau:

  • 404 - Not Found
  • 401/403 - Unauthorized/Forbidden
  • 400 - Bad Request
  • 500 - Internal Server Error

Và còn rất nhiêu lỗi khác tôi không thể liệt kê hết được. Nhưng chung quy thì lỗi 404 vẫn là lỗi thông dụng nhất nên các website hiện nay chủ yếu tập trung vào lỗi này.

Hiển Thị Trang Index Giả Mạo

Nếu bạn vào một folder nào đó trong website mà không có file index.html thì lúc này tất cả các file hay folder đề bị thấy hết, điều này không tốt lắm vì lộ hết các files và folders. Giải quyết vấn đề này ta dùng file .htaccess với dòng lệnh:

Options All -Indexes

Dòng lệnh này sẽ hiển thị một thông báo  Forbidden thay vì hiển thị cấu trúc folder.

Thiết lập trang index mặc định

Nếu bạn muốn thiết lập file mặc định thay vì file index.html thì ban bạn thêm đoạn code sau vào file .htaccess:

DirectoryIndex newindex.html

Trong đó newindex.html là tên file bạn muốn thiết lập.

Bảo Vệ File .htaccess

Như bạn biết file htaccess là một file đặc biệt dùng để cấu hình Server một cách dễ dàng, sẽ rất nguy hiểm nếu hacker tấn công vào file này của bạn. Để bảo vệ fiel này ta dùng đoạn code sau:

<Files .htaccess>

Order Allow,Deny

Deny from all

</Files>

Trong đó file .htaccess là tên file muốn bảo vệ. Nội dung bên trong có nghĩa không cho người nào truy cập đến file này.

Không phải chỉ bảo vệ được file .htaccess mà ta có thể bảo vệ một file bất kì. Ví dụ dưới đây tôi bảo vệ file wp-config.php trong Wordpress.

<Files wp-config.php>

Order Allow,Deny

Deny from all

</Files>

Đặt mật khẩu cho folder

Đôi lúc  ta cần đặt mật khẩu bảo vệ một file nào đó, tức là muốn vào file đó thì phải nhập username và password. Để làm được điều này các bạn phải tạo một file với tên .htpasswd  tại folder gốc của file bạn muốn bảo vệ sau đó điền nội dung sau:

MyUsername:MyPassword

Trong đó MyUsrename là tên username, MyPassword là mật khẩu, hai giá trị này bạn có thể thay đổi bất kì.

Tiếp theo ở file .htaccess bạn thêm đoạn code sau:

AuthName "Restricted Area" 

AuthType Basic 

AuthUserFile /demo/.htpasswd 

AuthGroupFile /dev/null

<Files file1.php>

require valid-user

</Files>

Trong đó AuthName "Restricted Area"   là tên chương trình.  /demo/.htpasswd là đường dẫn đến file htpasswd tính từ thư mục chứa file .htaccess. file1.php là tên file muốn bảo vệ. Bạn có thể lên trang web http://www.tools.dynamicdrive.com/password/ để generate thông tin và lấy code về dán vào file htaccess thay vì tự code.

Lời Kết

Trong bài này ta chỉ tìm hiểu những ứng dụng bảo vệ website căn bản của file .htaccess. Bài tiếp theo ta sẽ tìm hiểu nâng cao hơn đó là sử dụng file .htaccess để rewrite url.

 

Hãy để lại link bài viết gốc khi chia sẻ bài viết này, mình sẽ report DMCA với những website lấy nội dung mà không để nguồn hoặc copy bài với số lượng lớn.

Nguồn: freetuts.net

Profile photo of adminTheHalfHeart

TheHalfHeart

Có sở thích viết tuts nên đã từng tham gia viết ở một số diễn đàn, đến năm 2014 mới có điều kiện sáng lập ra freetuts.net. Sinh năm 90 và có 1 vợ 2 con, thích ca hát và lập trình.

ĐĂNG BÌNH LUẬN: Đăng câu hỏi trên Group Facebook để được hỗ trợ nhanh nhất.