WebsiteScanner Quét miễn phí

Bảo mật website WordPress: 10 việc cơ bản chủ shop tự làm được

WebsiteScanner · 3/11/2026 · khoảng 7 phút đọc

Tóm tắt
  • Phần lớn lỗ hổng WordPress được công bố nằm ở plugin và theme; cùng với mật khẩu quản trị yếu, đây là những đường xâm nhập phổ biến nhất.
  • Cập nhật đều đặn, dọn plugin không dùng, bật xác thực hai bước và có bản sao lưu là bốn việc quan trọng nhất.
  • Kiểm tra thêm từ bên ngoài: HTTPS, security headers và các file nhạy cảm bị lộ như .env hay wp-config.php.bak.

WordPress phổ biến nhất nên cũng là mục tiêu quen thuộc của bot. Chúng không nhắm riêng shop của bạn mà quét hàng loạt, tìm plugin có lỗ hổng đã công bố hoặc mật khẩu dễ đoán. Phần lớn kiểu tấn công này bị chặn bởi những việc cơ bản dưới đây.

Trước khi thay đổi cấu hình, hãy làm việc số 5 (sao lưu) trước tiên.

1. Cập nhật WordPress, theme và plugin

Vào Bảng tin → Cập nhật, cập nhật lõi WordPress rồi tới plugin và theme. Từ WordPress 5.5, bạn có thể bật tự động cập nhật cho từng plugin ở trang Plugin (liên kết “Bật tự động cập nhật”). Khi bản vá ra, chi tiết lỗ hổng cũng thường được công khai và bot bắt đầu dò ngay, nên chậm cập nhật vài ngày đến vài tuần là đủ để bị khai thác.

Dùng phiên bản PHP còn được hỗ trợ bảo mật (xem trong bảng điều khiển hosting).

2. Dọn dẹp plugin và theme

  • Xoá (không chỉ tắt) plugin và theme không dùng. File của plugin đã tắt vẫn nằm trên máy chủ và vẫn có thể bị khai thác.
  • Ngoài theme đang dùng, chỉ giữ một theme mặc định để dự phòng.
  • Chỉ cài plugin từ thư viện WordPress.org hoặc trang của nhà phát triển. Không dùng plugin, theme “nulled” (bản trả phí bị bẻ khoá chia sẻ miễn phí) vì chúng thường bị cài sẵn mã độc.
  • Tránh plugin lâu không được cập nhật; WordPress.org có ghi lần cập nhật gần nhất.

3. Khoá chặt trang đăng nhập quản trị

  • Không dùng tên đăng nhập admin. Tạo tài khoản quản trị mới với tên khác, đăng nhập thử bằng tài khoản mới, rồi mới xoá tài khoản cũ và chọn chuyển nội dung sang tài khoản mới.
  • Dùng mật khẩu dài, ngẫu nhiên, lưu trong trình quản lý mật khẩu; không dùng lại ở nơi khác.
  • Giới hạn số lần đăng nhập sai bằng plugin bảo mật hoặc tính năng của hosting.
  • Mỗi người một tài khoản, đúng vai trò: nhân viên viết bài dùng vai trò Biên tập viên hoặc Tác giả, không cấp Quản trị viên. Xoá tài khoản của người đã nghỉ việc hoặc đơn vị làm web cũ.

4. Bật xác thực hai bước (2FA)

WordPress chưa có sẵn 2FA, nên cần một plugin uy tín (ví dụ plugin Two Factor trên WordPress.org, hoặc tính năng 2FA trong plugin bảo mật bạn đang dùng). Bật cho mọi tài khoản quản trị; có 2FA, kẻ gian lộ được mật khẩu cũng chưa đăng nhập được.

Lưu ngay các mã khôi phục ở nơi an toàn. Mất điện thoại mà không có mã khôi phục, bạn có thể tự khoá mình khỏi trang quản trị và phải nhờ hosting tắt plugin.

5. Sao lưu tự động, lưu ở nơi khác

  • Sao lưu cả file (thư mục wp-content và wp-config.php) lẫn cơ sở dữ liệu.
  • Lưu bản sao ngoài máy chủ website (Google Drive, lưu trữ đám mây…), vì bản sao cùng máy chủ có thể mất cùng website.
  • Giữ nhiều bản theo thời gian, vì có khi website bị nhiễm từ lâu mới phát hiện.
  • Thử khôi phục ít nhất một lần. Bản sao lưu chưa từng khôi phục thử thì chưa chắc dùng được.
Website WordPress của bạn đang lộ những gì?

Quét miễn phí để kiểm tra HTTPS, security headers, file nhạy cảm bị lộ và dấu hiệu mã độc. Báo cáo tiếng Việt kèm cách sửa.

6. Phân quyền file và khoá sửa file trong trang quản trị

Trên hosting Linux, mức thường được khuyến nghị là thư mục 755, file 644, và wp-config.php chặt hơn (640 hoặc 600). Không bao giờ đặt 777. Có thể chỉnh trong trình quản lý file của hosting hoặc nhờ nhà cung cấp hosting.

Lưu ý: 600 chỉ chạy được khi PHP chạy dưới đúng tài khoản sở hữu file. Nếu sau khi đổi website báo “Lỗi thiết lập kết nối cơ sở dữ liệu” hoặc trang trắng, hãy trả về 640 (hoặc 644) và hỏi hosting mức phù hợp.

Thêm dòng sau vào wp-config.php (phía trên dòng “That's all, stop editing”) để tắt trình sửa code theme/plugin trong trang quản trị; nếu tài khoản admin bị lộ, kẻ gian không thể chèn mã ngay từ đó:

define( 'DISALLOW_FILE_EDIT', true );

7. Tắt xmlrpc.php nếu không dùng

xmlrpc.php là giao diện cũ cho phép ứng dụng bên ngoài kết nối và đăng bài, và hay bị bot dùng để dò mật khẩu hàng loạt. Nếu không dùng ứng dụng hay plugin cần đến nó, hãy tắt bằng plugin bảo mật, hoặc với Apache 2.4 thêm vào .htaccess:

<Files xmlrpc.php>
  Require all denied
</Files>

Với Nginx, dùng location = /xmlrpc.php { deny all; } rồi nạp lại Nginx. Jetpack cần XML-RPC để kết nối với WordPress.com; nếu dùng Jetpack hoặc ứng dụng di động kết nối kiểu cũ, đừng chặn hẳn mà kiểm tra lại các tính năng đó sau khi thay đổi.

8. Thêm security headers

Security headers là chỉ dẫn website gửi cho trình duyệt để hạn chế một số kiểu tấn công như clickjacking. Các header cơ bản: Strict-Transport-Security, X-Content-Type-Options: nosniff, X-Frame-Options (hoặc frame-ancestors trong CSP), Referrer-Policy. Thêm qua plugin, .htaccess, Nginx hoặc Cloudflare; chỉ bật Strict-Transport-Security khi toàn bộ website đã chạy ổn trên HTTPS. Công cụ kiểm tra security headers cho biết đang thiếu header nào và cách thêm.

9. Bật HTTPS cho toàn bộ website

Cài chứng chỉ SSL (hầu hết hosting có Let's Encrypt miễn phí), mở thử https:// tên miền của bạn để chắc chắn chạy được, rồi mới đổi cả hai ô Địa chỉ WordPress và Địa chỉ trang web trong Cài đặt → Tổng quan sang https:// và chuyển hướng mọi truy cập http:// sang https://. Đổi khi HTTPS chưa chạy có thể khoá bạn khỏi trang quản trị; khi đó sửa hằng số WP_HOME và WP_SITEURL trong wp-config.php. Xem thêm bài chứng chỉ SSL hết hạn: cách kiểm tra và gia hạn.

10. Xoá file nhạy cảm bị lộ ra ngoài

Thư mục website đôi khi còn sót những file ai biết đường dẫn cũng tải về được:

  • File sao lưu cấu hình như wp-config.php.bak, wp-config.php.old, wp-config.php~: máy chủ không chạy chúng như PHP mà trả về nguyên văn, lộ mật khẩu cơ sở dữ liệu.
  • File .env chứa mật khẩu, khoá API.
  • File sao lưu như backup.zip, website.tar.gz hoặc .sql chứa toàn bộ dữ liệu khách hàng.
  • Thư mục .git, file phpinfo.php dùng để thử nghiệm.

Xoá chúng qua trình quản lý file của hosting (bản sao lưu cần giữ thì chuyển ra nơi khác). Nếu file chứa mật khẩu đã từng lộ, hãy đổi mật khẩu đó, vì xoá file không thu hồi được thông tin đã bị tải. Bản quét miễn phí của WebsiteScanner có kiểm tra một số file nhạy cảm thường gặp.

Nếu nghi website đã bị xâm nhập

Nếu thấy chuyển hướng lạ, tài khoản quản trị lạ hay trang spam trên Google, hãy đọc bài website bị hack: 9 dấu hiệu và cách kiểm tra trước khi làm tiếp.

Câu hỏi thường gặp

Có cần cài plugin bảo mật cho WordPress không?

Không bắt buộc, nhưng một plugin bảo mật uy tín giúp giới hạn đăng nhập sai, bật 2FA và quét file thay đổi dễ hơn. Chỉ nên cài một plugin bảo mật, vì nhiều plugin cùng chức năng dễ xung đột.

Bật tự động cập nhật có làm hỏng website không?

Có thể, nhưng hiếm. Rủi ro bị khai thác khi không cập nhật thường lớn hơn. Hãy có bản sao lưu tự động trước, và với website quan trọng thì thử bản cập nhật lớn trên bản sao staging trước.

Tắt xmlrpc.php có ảnh hưởng gì không?

Jetpack cần XML-RPC để kết nối với WordPress.com, và một số ứng dụng di động hoặc công cụ đăng bài từ xa kiểu cũ cũng dùng nó. Nếu bạn không dùng các thứ đó thì có thể tắt an toàn.

Đổi đường dẫn wp-admin có giúp an toàn hơn không?

Giúp giảm bớt bot dò mật khẩu tự động, nhưng không thay thế được mật khẩu mạnh, xác thực hai bước và giới hạn đăng nhập sai. Nhớ ghi lại đường dẫn mới, kẻo chính bạn không tìm được trang đăng nhập.

Kiểm tra lại sau khi làm xong

Chạy bản quét miễn phí để xác nhận HTTPS, security headers và không còn file nhạy cảm bị lộ.