Cấu hình .htaccess – Bảo mật website

Cấu hình .htaccess - Bảo mật websiteCấu hình .htaccess là một phương pháp khá đơn giản nhưng rất hiệu quả để bảo mật website. file .htaccess là một file đặc biệt, nó tự động sinh ra sau khi bạn cài đặt wordpress. Bản chất nó là file cấu hình server cho máy chủ Apache, sử dụng để cấu hình permalink của website. Khi bạn cập nhật là đường dẫn URL từ trang Settings > Permalinks, thì file .htaccess sẽ được sửa đổi. Nội dung của file này sẽ chỉ dẫn Apache cho việc điều hướng website của bạn như mong muốn. Chính vì tầm quan trọng của nó như thế nên bạn có thể cấu hình file htaccess này để cho phép – không cho phép làm những gì trên vùng nào của website. Mặt trái của nó là nếu bạn không thực sự hiểu về cấu hình của file htaccess này thì chính bạn sẽ làm lỗi website.

Có nhiều cách để bảo mật WordPress, sử dụng .htaccess là cách tiếp cận đầu tiên và không thể bỏ qua. Hãy luôn sao lưu file .htaccess và khôi phục lại mỗi khi bạn cấu hình lỗi.

Vị trí của .htaccess sẽ nằm tại thư mục gốc chứa code WordPress (chứa thư mục wp-admin, wp-includes & wp-content). Tuy nhiên bạn có thể tạo thêm nhiều file .htaccess ở các thư mục con khác. Với WordPress có thể đặt ở thư mục wp-admin, wp-content/uploads. File .htaccess sẽ có tác dụng từ thư mục chứa nó và các thư mục con trong đó. Nhờ có .htaccess bạn có thể làm một số việc như: Cải thiện bảo mật wordpress; tăng tốc độ load trang; thiết lập chuyển hướng; Giới hạn/chống spam…

Ẩn thông tin máy chủ Apache

Với một số nhà cung cấp hosting, có riêng một trang để hiển thị thông tin của máy chủ web. Nếu bạn để lộ thông tin này cho hacker biết, server có thể bị tấn công, đặc biệt nếu bạn không thường xuyên cập nhật hệ điều hành mới. Vì vậy, tốt nhất bạn nên Cấu hình .htaccess tắt thông tin này đi.

Kích hoạt theo dõi symbolic link

Thêm dòng sau vào .htaccess, server của bạn sẽ có thể theo dõi được symbolic links (vd: shortcut)

Tắt duyệt thư mục trên web

Mặc định nếu bạn truy cập vào một thư mục, nếu thư mục đó không có file index thì  server sẽ trả về một trang liệt kê tất cả các files có trong đó. Nó trông giống như trình quản lý file đơn giản thế này:

duyệt thư mục trên web

Như vậy hacker dễ dàng xem được nội dung bên trong thư mục web của bạn. Kẽ hở này là đầu mỗi quan trọng để hacker thu thập thông tin, cấu trúc web và tấn công website. Để Cấu hình .htaccess tắt chế độ duyệt thư mục, bạn mở .htaccess thêm dòng sau:

Sau khi thêm đoạn mã trên, các thư mục truy cập mà không chứa file index.php sẽ bị từ chối:

duyệt thư mục trên web

Chặn duyệt thư mục

Sử dụng mã này để chặn duyệt thư mục:

Cấu hình múi giờ

Nếu bạn đặt máy chủ ở nước ngoài thì múi giờ sẽ lệch so với giờ Việt Nam. Bạn có thể điều chỉnh lại múi giờ bằng cách thêm mã này vào .htaccess

Chỉ định mã hóa văn bản hiển thị

Hầu hết các web hiện nay đều mã hóa văn bản cho HTML là UTF8.

Bảo vệ file cấu hình wp-config.php

wp-config.php là File chứa toàn bộ cấu hình của WordPress, các thông tin database. Đọc được file wp-config.php coi như biết hết các tử huyệt của web. Đó là file chứa thông tin nhạy cảm, cần được bảo mật. Thêm các dòng sau vào .htaccess để ngăn truy cập file này:

Bảo vệ file .htaccess

Cũng giống wp-config.php , file .htaccess chứa các cấu hình điều khiển truy cập web nên cần được bảo vệ. Để làm điều này, bạn chèn đoạn mã ở dưới đây:

Chống spam bình luận

Loại bỏ 1 số hình thức spam phổ biến, bằng cách sử dụng .htaccess. Không có một cách duy nhất nào là triệt để, bạn sẽ cần kết hợp với plugin như Akismet.

Ngăn chặn tìm kiếm người dùng

Nếu bạn truy cập cuongcong.com/?author=1 (thường là ID của admin). hacker biết được username, họ sẽ đoán ra password.

Để bảo vệ thông tin người dùng, bạn sử dụng đoạn code sau:

Vô hiệu hóa image hotlinking

Image Hotlinking là một hình thức lấy ảnh từ một website. Cụ thể, một website truy cập trực tiếp tới hình ảnh của một website khác bằng cách sử dụng đường dẫn URL hình ảnh từ site khác. Nếu website của bạn bị web khác lấy ảnh đồng nghĩa với bạn đang bị lấy cắp bản quyền ảnh và băng thông host (vì load ảnh sang web khác). Một kiểu phá hoại khác dựa trên hotlinking là họ có thể spam web của bạn từ một ảnh nào đó. Vô hiệu hóa hotlinking bằng cách chèn đoạn code dưới đây vào .htaccess

Bỏ đuôi mở rộng của file web “.php”:

Khi duyệt website muốn địa chỉ URL phải đẹp, chuyên nghiệp, và đôi lúc muốn che giấu công nghệ web đang sử dụng cũng có thể áp dụng phương pháp này. bạn vào file .htaccess gõ mã lệnh như sau:

Chuyển .php sang .html trong url:

Công việc này cũng khá đơn giản với file cấu hình .htaccess này, có một số lý do khiến bạn làm công việc này, đó là bạn muốn bảo mật, đuôi .html đẹp hơn .php, rồi để tối ưu SEO … bạn làm như sau:

Chặn IP cụ thể truy cập vào website

Nếu bạn nhận được cảnh báo một vài IP đã truy cập thường xuyên và bất thường vào quản trị wordpress hoặc cũng có thể bạn tìm ra những IP đã tạo spam cho website và bạn muốn chặn chúng. Tất nhiên giải pháp này không toàn diện vì họ có thể sẽ đổi IP. Tuy nhiên, rất nhiều các server không đổi IP nên sẽ chặn được họ truy cập website.

Chặn truy cập từ một website khác

Nếu bạn phát hiện ra những liên kết đến từ một số trang web mà hành vi có sự bất thường. Bạn không muốn những người truy cập từ những web đó vào web của bạn. Sử dụng mã sau:

Chuyển hướng người dùng từ site này sang site khác.

Khi người truy cập nhấn vào trang web của bạn từ những site không mong muốn, thay vì khóa họ trên trang web, bạn sẽ chuyển họ sang 1 URL khác được phép truy cập. Thêm mã sau vào .htaccess

Thiết lập cấu hình chuyển hướng

htaccess cho phép bạn cấu hình chuyển hướng. Tuy nhiên nếu bạn thiết lập nhiều chuyển hướng thì nên sử dụng plugin. Chẳng hạn như Redirection.

Chuyển hướng URL sang www.

Chuyển hướng phổ biến nhất từ URL không có www sang URL có dạng www (hoặc ngược lại). Một số nhà cung cấp hosting có tự động làm việc này hoặc bạn phải cấu hình thêm trong quản trị hosting. Nếu bạn muốn chủ động thực hiện, thêm code này vào .htaccess và thay bằng URL của bạn.

Thêm dấu “/” vào cuối URL:

Mã nguồn WordPress khi bạn tối ưu URL thì bạn sẽ thấy được có dấu “/” ở sau mỗi URL, điều đó là sẽ tốt cho SEO. Tránh bị các công cụ tìm kiếm cho là trùng lắp nội dung.

Chuyển hướng sang HTTPS

Nếu bạn có cài đặt chứng chỉ SSL cho WordPress để chuyển URL từ http sang https, sử dụng đoạn mã dưới đây để chuyển hướng các truy cập từ http sang https:

Tùy biến trang bảo trì (maintenance)

Để tạo trang thông báo web đang bảo trì, bạn có thể sử dụng đoạn code sau:

Sau đó bạn cần:

Tạo file .html với nội dung thông báo website đang trong chế độ bảo trì. Thêm IP của bạn ở dòng 4 (các vị trí ký tự \). Khi trang web hoạt động trở lại, hãy xóa mã trên hoặc thêm # vào trước mỗi dòng lệnh.

Kích hoạt cache

.htaccess cho phép bạn cache tài nguyên trên trình duyệt của người dùng để website chạy nhanh hơn.

Vô hiệu hóa truy cập tài nguyên

WordPress sử dụng scripts trong thư mục wp-includes để thực hiện các kịch bản. Thật nguy hiểm nếu một người dùng hay virus có thể thêm vào và thực thi một kịch bản độc hại. Bạn có thể vô hiệu hóa người dùng truy cập trực tiếp khu vực này:

Từ chối tấn công XSS

Đoạn mã dưới đây bảo vệ từ click chuột, chống lại các mối đe dọa & chặn nội dung trong trường hợp bị tấn công XSS.

Giới hạn truy cập wp-admin

wp-admin là hệ thống quản trị của WordPress, nơi bạn sẽ đăng bài viết, cấu hình menu, giao diện. Không ai có thể truy cập bất hợp pháp, bạn sẽ cần tài khoản đăng nhập để có quyền quản trị website. Ở dưới đây là những gì bạn có thể tăng tính bảo mật với file .htaccess mà bạn sẽ cần đặt trong thư mục wp-admin.

Chỉ cho phép người dùng có IP này sẽ được truy cập vào folder wp-admin. Điều này sẽ ngăn cấm người xa lạ kết nối vào website của bạn, kể cả khi họ có được tài khoản đăng nhập.

Thêm thông tin xác thực lớp 2

Khi bạn kết nối vào phần quản trị của WordPress, trước khi có thể quản lý bài viết, giao diện, plugin.. bạn sẽ cần phải đăng nhập sử dụng username và password. Để tăng cuòng bảo mật, htaccess cho phép thêm một lớp xác thực thứ 2. Để làm điều này, đầu tiên, bạn tạo file .htpasswd trong thư mục wp-admin. Nội dung của file này chứa username và mật khẩu đã mã hóa. Tạo htpasswd chúng ta sẽ sử dụng công cụ https://www.htaccesstools.com/htpasswd-generator/.

Sau đó, chèn đoạn mã sau vào file .htaccess, nhưng chú ý rằng nếu bạn sử dụng lớp bảo mật dưới, ajax có thể sẽ không hoạt động.

Chặn truy cập vào file PHP trong thư mục wp-includes

Tạo file .htaccess trong thư mục wp-includes và dán nội dung như dưới đây để không cho phép ai đó truy cập trực tiếp vào file php.

Chặn truy cập vào file PHP trong wp-content

Đối với thư mục wp-content, code cũng tương tự như trên:

Chặn truy cập vào file PHP trong wp-content/uploads

Thư mục uploads là nơi chứa các file ảnh, pdf, audio, video được upload lên. Do không có file php nào ở trong thư mục này, nếu có là “file lạ”. Nên tắt thực thi php để thư mục này được bảo vệ.

Đặt password cho thư mục và file:

Trong một số trường hợp bạn muốn đặt mật khẩu cho file và thư mục, tránh sự truy cập trái phép của người khác bạn có thể dùng file .htaccess và gõ mã lệnh như sau:

Set lại trang mặc định:

Hostting nhận trang mặc định chạy lên khi không rõ địa chỉ URL của trang đích thực là index.php, index.html … bây giờ bạn muốn chạy mặc định là trang khác ví dụ như trang info.html bạn có thể cài đặt trong file .htaccess như sau:

Bật tính năng nén file Gzip:

Bạn có thể bật chức năng này lên, và rất quan trọng trong việc backup dữ liệu, mục đích để tải dữ liệu được nhanh chóng và tranh mất mát. bạn vào trong file .htaccess và làm như sau:

Xóa category trong đường dẫn website WordPress

Khi thực hiện dịch vụ SEO trên các web wordpress nếu bỏ /category hoặc /danh-muc trên url category rất có lợi. Lúc này bạn đẩy tên danh mục về gần root. Có nhiều cách để xóa trong đó htaccess là 1 trong những cách hiệu quả, bạn có thể chèn đoạn mã sau:

Chúc các bạn vui vẻ!