Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> HTML

Bảo mật File & Thư mục WordPress bằng .htaccess: Hướng dẫn từng bước

File .htaccess là file cấu hình máy chủ được hỗ trợ bởi nhiều web server, bao gồm Apache - phần mềm web server phổ biến nhất. File tưởng như đơn giản này lại chứa đầy đủ các chức năng mạnh mẽ, nếu sử dụng đúng cách có thể xác định hiệu quả cách web server xử lý các request. Hãy học cách hạn chế truy cập vào file và thư mục WordPress bằng .htaccess.

Ngoài việc định nghĩa cách xử lý request, .htaccess còn rất hữu ích để bảo vệ file WordPress khỏi truy cập trái phép của hacker. Trong bài này, chúng ta sẽ khám phá nhiều cách bảo mật file và thư mục WordPress bằng .htaccess.

1. Cách bảo vệ file và thư mục WordPress bằng .htaccess?

Hãy cùng tìm hiểu các kỹ thuật đơn giản để bảo vệ file WordPress khỏi ánh mắt dòm ngó.

Trước khi bảo vệ các file khác, hãy bắt đầu bằng bảo vệ chính file .htaccess. Như luôn khuyên, trước khi thực hiện bất kỳ thay đổi nào (dù lớn hay nhỏ), hãy backup toàn bộ trang web và lưu vài bản sao file .htaccess trên máy cục bộ. Điều này giúp hạn chế thiệt hại nếu vô tình làm hỏng file.

i. Bảo vệ file .htaccess

File .htaccess nằm ở thư mục gốc web public_html. Có 2 cách truy cập: dùng FTP (như FileZilla) hoặc File Manager của hosting. Bài viết này dùng File Manager.

Các bước thực hiện:

  1. Đăng nhập tài khoản hosting. Nếu không nhớ thông tin, xem hướng dẫn của chúng tôi.
  2. Nhấn vào File Manager.
  3. Chọn thư mục public_html.
  4. Tìm file .htaccess, chuột phải chọn Edit.

Thêm đoạn code sau vào file:

# Deny access to .htaccess
<Files .htaccess>
Order allow,deny
Deny from all
</Files>

Đoạn code này sẽ chặn người dùng truy cập file .htaccess. Đơn giản, phải không?

Đã bảo vệ xong .htaccess, giờ chuyển sang các file khác, bắt đầu với thư mục wp-admin.

ii. Hạn chế truy cập thư mục wp-admin bằng .htaccess

Thư mục wp-admin chứa các file điều khiển công cụ quản trị. File admin.php dưới thư mục này thực hiện:

  • Kết nối database
  • Hiển thị bảng điều khiển WordPress
  • Kiểm soát trang đăng nhập

wp-admin rất quan trọng, cần bảo vệ khỏi truy cập trái phép vì hacker có thể phá hoại website qua bảng điều khiển. Hãy giới hạn truy cập bằng .htaccess, chỉ cho phép IP cụ thể. Tạo file .htaccess mới với code sau và upload vào thư mục wp-admin:

# Limit logins and admin by IP
<Limit GET POST PUT>
order deny,allow
deny from all
allow from 12.34.56.78
</Limit>

Lưu ý: Thay 12.34.56.78 bằng IP của bạn. Chỉ hạn chế wp-admin, không chặn truy cập toàn bộ site. User đăng ký vẫn truy cập được nhưng có thể giới hạn bằng vai trò user.

iii. Chặn truy cập trái phép vào wp-config.php

File wp-config xử lý cấu hình cơ bản WordPress, chứa thông tin nhạy cảm: cài đặt MySQL, khóa bí mật, chi tiết kết nối database... Cần bảo vệ tuyệt đối.

Thêm code sau vào file .htaccess (truy cập như phần i):

<files wp-config.php>
order allow,deny
deny from all
</files>

iv. Chặn truy cập wp-content/uploads & vô hiệu hóa thực thi PHP

Hacker thường để backdoor trong wp-includes hoặc wp-content/uploads/, thường là file .php. Cần vô hiệu hóa thực thi PHP trong các thư mục này.

Tạo file .htaccess mới với code:

<Files *.php>
deny from all
</Files>

Upload file này vào wp-content/uploads/ và wp-includes qua File Manager.

v. Vô hiệu hóa duyệt thư mục (Directory Browsing) trong WordPress

Duyệt thư mục cho phép xem danh sách file/thư mục thay vì trang web. Ví dụ: truy cập www.example.com/private/ sẽ liệt kê toàn bộ nội dung. Rất nguy hiểm vì hacker nắm được cấu trúc file để lên kế hoạch tấn công.

Tạo file .htaccess với code:

# disable directory browsing
Options All -Indexes

Upload vào thư mục cần bảo vệ (ví dụ wp-includes).

vi. Chặn IP cụ thể truy cập trang web

Nếu phát hiện IP nào spam, tấn công hoặc cố truy cập trái phép, hãy chặn bằng .htaccess. Thêm code:

<Limit GET POST>
order allow,deny
deny from 123.456.78.9
allow from all
</Limit>

Thay IP giả bằng IP cần chặn. Để chặn nhiều IP, thêm từng dòng deny from .... Để chặn dải IP, bỏ octet cuối: deny from 213.546.87 (chặn 213.546.87.0 - 213.546.87.255). Nếu chặn nhầm IP admin, xem hướng dẫn whitelist IP.

vii. Chặn domain cụ thể truy cập trang web

Nếu không biết IP nhưng biết tấn công từ domain xấu, .htaccess cho phép chặn referrer từ domain đó. Thêm code:

SetEnvIfNoCase Referer "badsite.com" bad_referer
Order Allow,Deny
Allow from ALL
Deny from env=bad_referer

Thay badsite.com bằng domain cần chặn. User truy cập từ domain đó sẽ báo lỗi.

2. Giải pháp thay thế an toàn hơn

Các phương pháp trên hiệu quả nhưng rủi ro cao vì can thiệp trực tiếp file cấu hình quan trọng. Chỉ một chấm lồi sai cũng có thể làm hỏng site!

Do đó, nếu không phải chuyên gia, nên dùng plugin bảo mật WordPress để hardening website. Plugin MalCare lo toàn bộ khía cạnh bảo mật: chặn IP, hardening, bảo vệ trang đăng nhập, quét mã độc... tất cả trong một!

Để có giải pháp bảo mật hoàn chỉnh,

Hãy dùng thử MalCare miễn phí ngay!