Một lượt quét bằng plugin báo “không phát hiện vấn đề” chưa có nghĩa website sạch. Nhiều loại mã độc chỉ hiện nội dung spam cho Googlebot, nằm trong database thay vì file, hoặc tắt luôn plugin quét. Bài này hướng dẫn quét mã độc WordPress theo ba lớp và cách đọc kết quả cho đúng.
Quét mã độc WordPress cần làm từ ba phía: bên ngoài (Search Console, Safe Browsing, công cụ quét trực tuyến, tìm kiếm site: trên Google), bên trong WordPress (plugin quét, so khớp file lõi với bản gốc) và trên máy chủ (công cụ quét của hosting, tìm file PHP lạ, kiểm tra database). Một lớp báo sạch chưa đủ kết luận; cả ba cùng sạch mới đáng tin.
Khi nào cần quét ngay?
- Khách báo bấm từ Google vào website thì bị chuyển sang trang cá cược, nhưng bạn tự gõ địa chỉ thì vào bình thường.
- Tìm
site:tenmien.comtrên Google thấy tiêu đề lạ: tiếng Nhật, tên thuốc, cá cược, hàng hiệu giá rẻ. Trường hợp tiêu đề cá cược đến từ trang tìm kiếm nội bộ hoặc tên miền phụ thì không quét ra mã độc, xem website bị chèn link cờ bạc: xử lý thế nào. - Search Console báo “Vấn đề bảo mật” hoặc số trang được lập chỉ mục tăng vọt mà bạn không đăng gì.
- Xuất hiện tài khoản quản trị không ai biết, hoặc plugin lạ không có trong danh sách bạn cài.
- Hosting báo vượt tài nguyên, email từ tên miền bị đánh dấu spam hàng loạt.
- Website từng dùng theme hoặc plugin bản “nulled” tải từ nguồn không chính thức.
Không có dấu hiệu nào thì vẫn nên quét định kỳ, vì loại mã độc giấu kỹ nhất là loại không gây triệu chứng cho tới khi Google gắn cảnh báo.
Lớp 1: quét từ bên ngoài, không cần đăng nhập
| Công cụ | Phát hiện được | Không phát hiện được |
|---|---|---|
| Search Console: báo cáo Vấn đề bảo mật và Thao tác thủ công | Những gì Google đã ghi nhận: phần mềm độc hại, trang lừa đảo, nội dung bị chèn | Mã độc mới, chưa bị Google phát hiện |
| Search Console: Kiểm tra URL → Kiểm tra URL đang hoạt động → Xem trang đã thu thập dữ liệu | Nội dung Googlebot thực sự nhận được; cách lộ ra mã độc chỉ hiện spam cho bot (cloaking) | Phải làm với từng URL |
Tìm kiếm site:tenmien.com kèm từ khóa như casino, viagra, slot | Trang spam đã được lập chỉ mục | Mã độc chưa tạo trang mới |
| Trạng thái trang web của Google Safe Browsing (Báo cáo minh bạch) | Website có đang bị Google đánh dấu nguy hiểm không | Vị trí mã độc |
| Công cụ quét trực tuyến (ví dụ Sucuri SiteCheck) | Script lạ, chuyển hướng, danh sách đen của nhiều nguồn | Mọi thứ không hiện ra trên trang công khai: cửa hậu, file trong uploads, mã chỉ chạy với một số khách |
Mẹo kiểm tra chuyển hướng: mở website trên điện thoại dùng 4G, ở chế độ ẩn danh, bằng cách bấm từ kết quả tìm kiếm Google. Nhiều mã độc chỉ chuyển hướng khách đến từ Google, đến từ di động, và chỉ một lần mỗi người, nên quản trị viên đã đăng nhập không bao giờ thấy.

Lớp 2: quét bên trong WordPress
Plugin quét bảo mật như Wordfence so sánh file lõi, theme và plugin miễn phí với bản gốc trên WordPress.org, đối chiếu mẫu mã độc đã biết và kiểm tra tài khoản. Hai giới hạn cần biết: bản miễn phí của Wordfence nhận quy tắc tường lửa và mẫu mã độc mới chậm hơn bản trả phí khoảng 30 ngày; và plugin chạy bên trong WordPress nên mã độc đã chiếm quyền có thể vô hiệu hóa hoặc né nó.
So khớp file với bản gốc bằng WP-CLI (nếu hosting có SSH). Đây là cách nhanh nhất để biết file lõi có bị sửa không:
wp core verify-checksums: báo file lõi bị sửa và file lạ nằm trong thư mục lõi.wp plugin verify-checksums --all: so plugin tải từ WordPress.org với bản gốc. Plugin trả phí không có dữ liệu đối chiếu, phải so với gói tải từ tài khoản đã mua.wp user list --role=administrator: liệt kê toàn bộ quản trị viên để rà tài khoản lạ.
Không có SSH thì dùng tính năng so sánh file của plugin quét, hoặc tải bộ cài WordPress đúng phiên bản về so bằng phần mềm so sánh thư mục.
Lớp 3: quét trên máy chủ và trong database
Nhiều hosting cPanel, DirectAdmin có sẵn trình quét như ImunifyAV hoặc Imunify360. Ưu điểm là quét được cả file mà WordPress không tải tới, như script đặt trong thư mục ảnh hoặc ngoài thư mục website. Kết quả nên được đọc cùng các kiểm tra thủ công dưới đây.
- File PHP trong
wp-content/uploads: thư mục này chỉ nên chứa ảnh, tài liệu. Một file .php nằm ở đây hầu như luôn là cửa hậu. - File mới sửa gần đây: lọc file .php được sửa trong 7–30 ngày qua, đối chiếu với lần cập nhật plugin gần nhất. File sửa vào giờ không ai làm việc là đầu mối tốt.
- File có tên giả dạng: tên gần giống file lõi (wp-confg.php, wp-load-cache.php), file ẩn bắt đầu bằng dấu chấm, file trong thư mục mu-plugins mà bạn không cài.
- Đoạn mã bị làm rối: chuỗi dài vô nghĩa đi cùng
eval,base64_decode,gzinflate,str_rot13. Plugin hợp lệ đôi khi cũng dùng các hàm này, nên cần xem file nằm ở đâu và có khớp bản gốc không. - .htaccess và wp-config.php: quy tắc chuyển hướng theo trình duyệt hoặc nguồn truy cập, dòng
auto_prepend_filelạ. - Database: bảng options có giá trị siteurl, home bị đổi; danh sách plugin kích hoạt có tên lạ; bài viết, trang, widget chứa thẻ
<script>hoặc<iframe>trỏ ra tên miền lạ; tác vụ cron lạ.
Đọc kết quả quét thế nào cho đúng?
| Kết quả | Nghĩa là | Việc tiếp theo |
|---|---|---|
| File lõi bị sửa | Rất có khả năng đã bị xâm nhập | Thay toàn bộ lõi bằng bản gốc, tìm tiếp cửa hậu ở theme, plugin, uploads |
| Plugin miễn phí khác bản gốc | Bị chèn mã, hoặc ai đó sửa tay | Xóa và cài lại từ WordPress.org |
| Cảnh báo “mã có thể độc hại” trong plugin trả phí | Có thể là cảnh báo nhầm do plugin dùng mã hóa bản quyền | So với bản tải từ tài khoản đã mua trước khi xóa |
| Plugin bỏ rơi, có lỗ hổng đã công bố | Chưa phải mã độc, nhưng là cửa để vào | Thay plugin khác hoặc gỡ |
| Ba lớp đều sạch nhưng Google vẫn cảnh báo | Mã độc nằm ở database, hoặc chỉ hiện cho Googlebot, hoặc cảnh báo cũ chưa được xem xét lại | Dùng Kiểm tra URL đang hoạt động; rà database |
Đừng xóa file ngay khi thấy cảnh báo. Xóa nhầm file của plugin có thể làm website lỗi; xóa đúng file mã độc nhưng chưa tìm ra đường vào thì vài ngày sau lại bị. Trước khi xóa, sao lưu nguyên trạng (kể cả bản đang nhiễm) để còn đối chiếu.
Phát hiện mã độc rồi thì làm gì?
Thứ tự xử lý khi đã xác nhận bị xâm nhập: cách ly, đổi toàn bộ mật khẩu và khóa bí mật, làm sạch file và database, vá lỗ hổng đã cho kẻ tấn công vào, rồi mới gửi yêu cầu Google xem xét lại. Các bước chi tiết, kể cả nghĩa vụ khi lộ dữ liệu khách hàng, nằm trong bài website bị hack phải làm gì.
Website có backlink spam hàng loạt, bị chuyển hướng hoặc đã có cảnh báo đỏ của Google thường cần người làm kỹ thuật. Dịch vụ xử lý mã độc WordPress của Marketing SEO Top có gói cơ bản 1,5 triệu (quét, gỡ mã độc, xóa chuyển hướng) và gói đầy đủ 3 triệu (thêm dọn trang spam, khôi phục và gia cố); trường hợp có cửa hậu nhiều lớp được báo giá sau khi kiểm tra.
Lịch quét gợi ý để phát hiện sớm
| Tần suất | Việc làm |
|---|---|
| Hằng tuần | Xem email cảnh báo của plugin bảo mật và Search Console; lướt danh sách quản trị viên |
| Hằng tháng | Quét đầy đủ bằng plugin; so khớp file lõi; tìm site:tenmien.com kèm từ khóa spam |
| Sau mỗi sự cố hoặc khi đổi người quản trị | Quét cả ba lớp, đổi mật khẩu, rà plugin và tài khoản |
Quét chỉ phát hiện; giảm khả năng bị nhiễm nằm ở việc cập nhật đều và không dùng phần mềm lậu. Thứ tự các việc bảo mật nên làm trước có trong bài cách bảo mật website tránh bị hack, và quy trình cập nhật hằng tháng ở bài cập nhật WordPress an toàn. Nếu muốn có người làm định kỳ, xem bảo trì WordPress.
Nguồn tra cứu tháng 10/2026: tài liệu Search Console về báo cáo Vấn đề bảo mật và công cụ Kiểm tra URL (support.google.com/webmasters); tài liệu lệnh checksum của WP-CLI (developer.wordpress.org/cli); trang so sánh bản miễn phí và trả phí của Wordfence.
Câu hỏi thường gặp
Quét mã độc WordPress online miễn phí có chính xác không?
Chính xác với những gì hiện ra trên trang công khai, như script lạ hay chuyển hướng. Công cụ online không đọc được file trên hosting và database, nên không thấy cửa hậu. Kết quả “sạch” từ công cụ online chỉ là một lớp kiểm tra.
Vì sao tự vào website thấy bình thường mà khách bị chuyển sang trang lạ?
Mã độc thường chọn nạn nhân: chỉ chuyển hướng khách đến từ Google, dùng điện thoại, chưa đăng nhập, và chỉ một lần mỗi người. Hãy thử bằng điện thoại dùng 4G, cửa sổ ẩn danh, bấm vào website từ kết quả tìm kiếm.
Cài nhiều plugin bảo mật cùng lúc có quét kỹ hơn không?
Không nên. Hai plugin tường lửa, quét file chạy song song dễ xung đột, làm website chậm và báo lỗi chồng chéo. Dùng một plugin trong WordPress, kết hợp công cụ quét của hosting và kiểm tra từ bên ngoài là đủ ba lớp.
Quét mã độc có làm website chậm không?
Lượt quét đầy đủ bằng plugin tốn tài nguyên hosting trong lúc chạy, website có thể chậm vài phút, nhất là trên gói hosting nhỏ. Hãy đặt lịch quét vào giờ ít truy cập; quét từ bên ngoài và quét của hosting không ảnh hưởng tốc độ trang.
Website bị chèn trang spam tiếng Nhật thì quét ở đâu?
Kiểu này thường để lại file trong thư mục gốc hoặc uploads, sửa .htaccess và tạo sitemap giả. Hãy tìm file PHP lạ, kiểm tra .htaccess, xem báo cáo Sơ đồ trang web trong Search Console có sitemap nào bạn không gửi, rồi xóa và yêu cầu Google gỡ các URL spam.
Cần người làm giúp phần này?
Mô tả ngắn nhu cầu hoặc gửi link website. Chúng tôi phản hồi bằng đánh giá cụ thể trước khi báo giá.
