Khách mở web của bạn và bị đẩy sang một trang quảng cáo, trang cá cược hoặc trang báo “điện thoại của bạn bị nhiễm virus”. Bạn thử mở trên máy tính thì lại thấy bình thường. Đây gần như chắc chắn là mã độc chuyển hướng. Nó được viết để chỉ chuyển hướng một số khách (vào từ Google, dùng điện thoại, lần đầu ghé web) nhằm qua mặt chủ web. Bài này hướng dẫn cách xác nhận và tìm chỗ mã độc nằm.
1. Xác nhận web đang bị chuyển hướng
- Mở như khách mới: dùng cửa sổ ẩn danh trên điện thoại, tắt wifi dùng 4G, tìm tên web trên Google rồi bấm vào kết quả. Mã độc thường chỉ kích hoạt khi khách đến từ Google.
- Không đăng nhập: nhiều mã độc bỏ qua người đang đăng nhập WordPress, nên bạn là người cuối cùng thấy lỗi.
- Kiểm tra từng bước chuyển hướng bằng công cụ kiểm tra chuyển hướng. Nếu chuỗi chuyển hướng đi sang một tên miền lạ, chuyển hướng xảy ra ở phía máy chủ (trong
.htaccesshoặc PHP). Nếu công cụ thấy trang trả mã 200 bình thường mà trình duyệt vẫn bị đẩy đi, chuyển hướng nằm trong JavaScript.


Không phải chuyển hướng nào cũng là mã độc. Web chuyển từ http sang https, từ có www sang không www, hoặc sang trang ngôn ngữ phù hợp là bình thường. Chỉ đáng lo khi đích đến là tên miền lạ.
2. Những chỗ mã chuyển hướng hay nằm
| Chỗ | Cách kiểm tra |
|---|---|
File .htaccess ở thư mục gốc và các thư mục con | Tìm các dòng RewriteCond %{HTTP_REFERER} có chữ google, hoặc RewriteRule trỏ sang tên miền lạ |
Đầu file index.php, wp-config.php, wp-blog-header.php | Đoạn mã dài một dòng, có eval, base64_decode, chuỗi ký tự lộn xộn |
functions.php, header.php, footer.php của theme | Thẻ <script> lạ, đoạn PHP kiểm tra User-Agent điện thoại |
Cơ sở dữ liệu: bảng wp_options (giá trị siteurl, home, widget, cài đặt theme) và wp_posts | Tìm <script, String.fromCharCode, atob(, tên miền lạ |
| Plugin lạ hoặc plugin lậu | Plugin bạn không cài, plugin “null” tải từ trang chia sẻ |
Thư mục wp-content/mu-plugins | Plugin “bắt buộc” không hiện trong danh sách plugin thường, nên hay bị lợi dụng |
3. Xử lý
- Sao lưu nguyên trạng, rồi đổi mật khẩu hosting, FTP, cơ sở dữ liệu và mọi tài khoản quản trị.
- Thay
.htaccessbằng bản mặc định của WordPress (mẫu có trong bài lỗi 404 WordPress), sau đó mới thêm lại các quy tắc bạn hiểu rõ. - Cài lại lõi WordPress, plugin và theme từ nguồn chính thức.
- Dọn mã lạ trong cơ sở dữ liệu. Nếu hai giá trị
siteurlvàhomebị đổi sang tên miền lạ, sửa lại ngay. - Xoá cache của plugin cache, của Cloudflare và CDN. Nếu không xoá, khách vẫn nhận bản trang nhiễm đã lưu.
- Kiểm tra lại như khách mới, trên nhiều thiết bị, trong vài ngày liền.
4. Ảnh hưởng tới Google và quảng cáo
Google có thể gắn nhãn “Trang web này có thể gây hại” hoặc chặn quảng cáo Google Ads, Facebook Ads trỏ về web. Sau khi dọn sạch, vào Search Console mục Vấn đề bảo mật để gửi yêu cầu xem xét lại. Với quảng cáo bị từ chối, chạy lại kiểm tra hoặc gửi yêu cầu xem xét lại trong trình quản lý quảng cáo.
5. Phòng lại
- Không dùng plugin, theme lậu. Đây là nguồn lây chuyển hướng phổ biến.
- Cập nhật đều và xoá plugin không dùng.
- Bật xác thực hai lớp cho quản trị viên.
- Theo dõi web bằng giám sát website và định kỳ kiểm tra chuỗi chuyển hướng của trang chủ.
Xem thêm các bài WordPress bị hack và website bị chèn link cờ bạc, vì ba kiểu tấn công này thường đi cùng nhau.
6. Khi nào nên nhờ người làm
Mã chuyển hướng hay được mã hoá và giấu ở nhiều nơi cùng lúc. Dọn sót một chỗ là lỗi quay lại. Nếu web đang chạy quảng cáo hoặc bán hàng, mỗi ngày bị chuyển hướng là mất khách thật. Dịch vụ xử lý website nhiễm mã độc giá 890.000đ đến 1.900.000đ, bảo hành 30 ngày.