Các file và thư mục WordPress đóng vai trò then chốt trong việc bảo vệ site. Thiết lập đúng quyền sau khi cài WordPress nên là ưu tiên hàng đầu. Việc phân quyền ai có thể xem file nào và user có thể thực hiện hành động gì sẽ cải thiện đáng kể bảo mật site. Trong bài này, chúng ta sẽ thảo luận cách vô hiệu hóa thực thi PHP và duyệt thư mục để tăng cường bảo mật.
Vô Hiệu Hóa Thực Thi PHP: Tại Sao & Làm Thế Nào?
Một số thư mục WordPress như Uploads, Themes, Plugins mặc định có quyền ghi. Quyền này cho phép upload hình ảnh/video hoặc cài theme/plugin. Mỗi khi cài plugin/theme, file mới được lưu trong thư mục tương ứng. Điều này không thể nếu thư mục Themes/Plugins không có quyền ghi.
Một lý do WordPress phổ biến là khả năng tùy biến dễ dàng với theme/plugin. Ai cũng có thể cài theme/plugin bất kỳ nhờ thư mục Themes/Plugins có quyền ghi mặc định. Nhưng đáng tiếc, quyền này cũng mở cửa cho tấn công như phishing, SEO spam, brute force, v.v. Hacker có thể upload script độc hại và thực thi từ xa để chiếm quyền site hoặc phá hủy nó.
Có thể nhắc đến vụ hack Mailpoet cho phép hacker upload mã PHP độc hại vào thư mục Upload và thực thi để kiểm soát site.
Không tiện loại bỏ quyền ghi vì rồi bạn không thể upload ảnh, cài plugin/theme. Nhưng bạn có thể thu hẹp phạm vi tấn công thành công bằng cách vô hiệu hóa thực thi PHP. Nó xóa quyền thực thi trong các thư mục cụ thể.
Cách đơn giản để vô hiệu hóa thực thi PHP là đặt mã đặc biệt vào file .htaccess của thư mục bạn muốn vô hiệu hóa.
Lưu ý: Hãy backup site trước khi sửa file. Một lỗi nhỏ trong các bước dưới có thể làm hỏng site hoặc gây vấn đề khác. Backup đảm bảo bạn khôi phục nhanh bản sao hoạt động khi sự cố xảy ra.
Bước 1: Để vô hiệu hóa thực thi PHP trong thư mục Uploads, tạo file .htaccess trong thư mục Upload. Bạn tìm thấy thư mục trong wp-content dưới public_html.
Bước 2: Mở Notepad (Windows) hoặc TextEdit (Mac) để tạo file. Thêm mã sau và lưu tên file là .htaccess (không phải .htaccess.txt):
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
Bước 3: Lưu mã và upload file vào thư mục Upload.
Bước 4: Bây giờ bạn có file .htaccess mới trong thư mục Upload. Click chuột phải chọn Edit. Thêm đoạn mã sau vào file .htaccess mới:
<FilesMatch “\.(php|php\.)$”> Order Allow,Deny Deny from all </FilesMatch>
Trong hình dưới, chúng tôi đặt mã vào file .htaccess.
Điều này đảm bảo bất kỳ file nào có chứa "PHP" sẽ bị bắt và chặn thực thi. Nếu hacker upload file như "mailciousPHPFileDisguisedAsJPEFfile.php.jpg", nó sẽ bị chặn.
Để bảo mật tối đa, bạn có thể thêm mã vào file .htaccess của thư mục plugin và theme.
Vô hiệu hóa thực thi PHP thủ công hơi rủi ro. Cần thao tác cẩn thận trong File Manager. Một sai lầm nhỏ có thể gây hại nghiêm trọng. Dễ hơn và an toàn hơn là dùng plugin. MalCare Security Service có tính năng Site Hardening cho phép Block PHP Execution.
Bạn sẽ cần chi tiết FTP để bật tính năng này.
Vô hiệu hóa thực thi PHP tăng cường bảo mật nhưng chúng ta có thể đi xa hơn bằng cách vô hiệu hóa duyệt thư mục.
Ngăn Chặn Duyệt Thư Mục: Tại Sao & Làm Thế Nào?
Đôi khi khách truy cập dễ dàng xem danh sách thư mục của site WordPress. Ví dụ, truy cập site Westworld Fansite có thể xem file trong wp-includes bằng cách mở "https://westworldfansite.com/wp-includes/" trên trình duyệt.
Có vẻ vô hại nhưng liệt kê thư mục có thể lộ thông tin nhạy cảm mà hacker khai thác để xâm nhập. Do đó cần ẩn liệt kê. Mặc dù "bảo mật bằng che giấu" thường bị coi thường, nhưng tốt nhất là ẩn càng nhiều thông tin càng tốt. Hacker biết về bạn càng ít, khả năng tấn công càng thấp.
Để tăng cường bảo mật, chúng tôi quyết định vô hiệu hóa duyệt thư mục bằng cách đặt mã sau vào file .htaccess.
Nhớ backup site trước khi sửa .htaccess. Một lỗi có thể gây vấn đề lớn. Backup giúp khôi phục nhanh bản sao hoạt động khi sự cố xảy ra.
Nhớ chỉnh sửa file .htaccess của thư mục bạn muốn ngăn chặn duyệt. Ví dụ, muốn bảo vệ thư mục wp-include, đặt dòng sau vào file .htaccess của thư mục wp-include:
Options All –Indexes
Sau khi lưu mã, thử truy cập danh sách thư mục và trang lỗi 403 xuất hiện.
Lời Kết
Vô hiệu hóa thực thi PHP và duyệt thư mục chắc chắn cải thiện bảo mật site nhưng chỉ là một trong nhiều cách bảo vệ WordPress khỏi tấn công. Một số biện pháp khác: dùng plugin bảo mật, chứng chỉ SSL, username/password mạnh và duy nhất, xác thực HTTP và xác thực hai yếu tố (2FA)…