Bỏ qua tới nội dung
Tìm

Site bị chèn trang spam tiếng Nhật, cờ bạc: nhận ra trong Search Console và dọn sạch từng bước

Site bị chèn hàng nghìn trang spam thường không có dấu hiệu gì trên trang chủ. Bài này chỉ cách nhận ra sớm qua Search Console, dọn theo đúng thứ tự và chặn đường quay lại.

Ban biên tập Siêu SEO · · 7 phút đọc

Thợ khoá thay ổ khoá cửa gỗ cũ ở phố cổ Hà Nội

Một buổi sáng, chủ site gõ tên thương hiệu trên Google và thấy bên dưới là hàng loạt kết quả tiếng Nhật, quảng cáo cá cược, thuốc giảm cân — tất cả đều mang tên miền của mình. Mở trang chủ thì mọi thứ vẫn bình thường. Đây là kiểu tấn công rất phổ biến với site WordPress và các site PHP cũ ở Việt Nam: kẻ tấn công chèn mã sinh ra hàng nghìn trang rác, thường chỉ hiện cho máy thu thập của Google chứ không hiện cho người dùng bình thường, để mượn uy tín tên miền của bạn đẩy trang của họ.

Thiệt hại không chỉ là xấu mặt. Google có thể gắn cảnh báo "Trang web này có thể đã bị tấn công" ngay trên kết quả tìm kiếm, áp thao tác thủ công vì spam do bị tấn công, và ngân sách thu thập của site bị nuốt bởi hàng chục nghìn trang rác. Trang thật của bạn bị thu thập chậm hơn, tụt hạng.

Dấu hiệu nhận ra sớm

Phần lớn chủ site phát hiện muộn vì chỉ nhìn trang chủ. Các dấu hiệu sớm nằm trong số liệu:

Nơi xemDấu hiệuMức nghi ngờ
Search Console → Bảo mật và thao tác thủ côngCó thông báo "Nội dung bị tấn công" hoặc "Spam do bị tấn công"Chắc chắn
Search Console → TrangSố trang được phát hiện/đã lập chỉ mục tăng vọt trong vài ngày mà bạn không đăng gìRất cao
Search Console → Hiệu suất → Truy vấnXuất hiện truy vấn tiếng Nhật, tiếng Trung, tên thuốc, cá cượcRất cao
Search Console → Hiệu suất → TrangĐường dẫn lạ dạng /abc123.html, /?p=dãy số dài, thư mục chưa từng tạoRất cao
SitemapCó sitemap lạ được nộp hoặc nằm trong robots.txtChắc chắn
Search Console → Cài đặt → Người dùngCó chủ sở hữu lạ đã được thêmChắc chắn
Lệnh site:tenmien.vn trên GoogleKết quả có tiêu đề lạCao

Dòng về người dùng trong bảng hay bị bỏ qua: kẻ tấn công đôi khi xác minh tên miền của bạn trong Search Console bằng tài khoản riêng (qua tệp xác minh đặt lên máy chủ), rồi nộp sitemap rác để Google lập chỉ mục nhanh hơn. Một khi đã là chủ sở hữu, họ còn có thể gỡ quyền của người khác.

Một công cụ kiểm định kỳ có theo dõi số trang trong sitemap và robots.txt sẽ bắt được một phần dấu hiệu này. Nhưng chỉ số đáng tin nhất vẫn là truy vấn lạ trong báo cáo Hiệu suất, nên đưa vào việc đọc hằng tuần như trong lịch kiểm site.

Vì sao mở trang chủ thấy bình thường

Kỹ thuật phổ biến gọi là che giấu (cloaking): mã độc kiểm tra ai đang truy cập. Nếu là máy thu thập của Google (dựa vào chuỗi nhận dạng hoặc dải IP), nó trả trang rác. Nếu là người gõ thẳng địa chỉ, nó trả trang bình thường. Một số biến thể còn chỉ chuyển hướng người đến từ trang kết quả Google sang site cá cược, còn người gõ trực tiếp thì không.

Cách kiểm chính xác: dùng công cụ Kiểm tra URL trong Search Console với một đường dẫn lạ, bấm Kiểm tra URL đang hoạt động, xem ảnh chụp và mã HTML mà Google thấy. Đó là phiên bản thật mà Google đang lập chỉ mục.

Hai người đeo găng quét dọn sân gạch sau bão ở làng ven biển

Dọn theo thứ tự: đóng cửa trước, quét nhà sau

Sai lầm hay gặp nhất là xoá trang rác ngay, rồi một tuần sau chúng quay lại. Nếu không đóng cửa vào, mọi thứ bạn xoá sẽ được sinh lại. Thứ tự đúng:

  1. Sao lưu nguyên trạng toàn bộ mã nguồn và cơ sở dữ liệu, kể cả phần bị nhiễm. Cần để đối chiếu và làm bằng chứng.
  2. Lấy lại quyền Search Console: gỡ mọi chủ sở hữu lạ, xoá tệp xác minh lạ trên máy chủ (tệp dạng google123abc.html), xoá sitemap lạ đã nộp.
  3. Đổi toàn bộ mật khẩu: quản trị site, hosting, FTP/SFTP, cơ sở dữ liệu, email gắn với tên miền. Gỡ tài khoản quản trị lạ.
  4. Tìm cửa vào: plugin hoặc giao diện có lỗ hổng đã biết, plugin bản lậu (rất phổ biến — bản "miễn phí" của plugin trả phí thường kèm mã độc sẵn), mật khẩu yếu, tệp tải lên cho phép chạy PHP.
  5. Dọn mã độc: thay toàn bộ lõi WordPress, plugin, giao diện bằng bản sạch tải từ nguồn chính thức (không vá từng tệp). Tìm tệp PHP lạ trong thư mục uploads, tệp .htaccess bị sửa, mã chèn trong wp-config.php, các dòng lạ trong bảng options và bảng bài viết.
  6. Kiểm lại bằng mắt Google: Kiểm tra URL với vài đường dẫn rác, phải trả 404 hoặc 410; với trang thật, phải hiện đúng nội dung.
Nếu site không có bản sao lưu sạch và mã nguồn đã bị sửa nhiều chỗ, cân nhắc dựng lại từ đầu trên hosting mới, chỉ chuyển nội dung bài viết (đã kiểm) và ảnh. Mất vài ngày nhưng chắc chắn hơn vá chắp vá.

Loại trang rác khỏi kết quả Google

Sau khi dọn sạch, các trang rác cần trả mã 404 hoặc 410. Google sẽ tự loại chúng dần khi thu thập lại. Mã 410 (đã xoá vĩnh viễn) thường được xử lý nhanh hơn một chút. Để đẩy nhanh:

  • Không chặn các đường dẫn rác trong robots.txt. Chặn thì Google không thu thập lại được, không thấy 404, trang rác nằm lại lâu hơn.
  • Nếu trang rác theo mẫu chung (cùng thư mục, cùng tiền tố), dùng công cụ Xoá URL trong Search Console với tuỳ chọn xoá theo tiền tố để ẩn tạm thời khỏi kết quả trong khoảng sáu tháng, đủ thời gian để Google thu thập và thấy 404.
  • Nộp lại sitemap sạch chỉ gồm trang thật.
  • Theo dõi số trang trong báo cáo Trang giảm dần. Với vài chục nghìn trang rác, quá trình có thể mất nhiều tuần tới vài tháng — đây là chuyện bình thường.

Ảnh hưởng tới phần còn lại của site

Ngoài chuyện xấu mặt trên trang kết quả, hàng chục nghìn trang rác còn gây hại theo những cách ít thấy hơn:

  • Ngân sách thu thập bị nuốt: máy thu thập của Google dành phần lớn thời gian cho trang rác, trang thật mới đăng được phát hiện chậm hơn. Với site nhỏ thường không đáng kể, nhưng khi trang rác nhiều gấp mười trang thật thì có ảnh hưởng — nền tảng ở bài ngân sách thu thập của SEO Gốc.
  • Máy chủ chậm: mã độc sinh trang theo yêu cầu, mỗi lượt máy thu thập ghé đều tốn tài nguyên, hosting chia sẻ có thể bị nhà cung cấp tạm khoá vì vượt mức.
  • Email bị đánh dấu thư rác: tên miền dính danh sách đen thì thư gửi từ email tên miền đó cũng dễ vào hộp thư rác của khách.
  • Khách mất lòng tin: người bấm từ Google bị chuyển sang site cá cược sẽ không quay lại.

Vì vậy, khi dọn xong, ngoài việc theo dõi trang rác giảm, hãy kiểm thêm tốc độ máy chủ, thử gửi một email ra ngoài, và tra tên miền trên các danh sách chặn công khai.

Nếu có thao tác thủ công

Nếu Search Console báo thao tác thủ công loại "spam do bị tấn công" hoặc có cảnh báo bảo mật, sau khi dọn xong bạn gửi yêu cầu xem xét lại. Trong yêu cầu, mô tả ngắn: site bị tấn công qua đâu, đã dọn những gì, đã đóng lỗ hổng nào, đã đổi mật khẩu nào. Đừng gửi trước khi chắc chắn sạch — bị từ chối thì lần sau xét lâu hơn. Quy trình chi tiết có ở bài thao tác thủ công.

Bàn tay dùng bay trát kín vết nứt trên bức tường trắng

Chống tái nhiễm

Biện phápCông sứcHiệu quả
Gỡ plugin, giao diện bản lậu và bản bỏ rơiThấpRất cao
Bật xác thực hai lớp cho tài khoản quản trịThấpCao
Cấm chạy PHP trong thư mục uploadsThấp (một dòng cấu hình)Cao
Tắt chỉnh sửa tệp từ trong quản trị (DISALLOW_FILE_EDIT)ThấpTrung bình
Sao lưu tự động hằng ngày, giữ bản ngoài máy chủTrung bìnhRất cao khi có sự cố
Theo dõi truy vấn và số trang hằng tuầnThấpPhát hiện sớm

Biện pháp cuối là thứ giúp bạn phát hiện trong vài ngày thay vì vài tháng. Khi theo dõi site định kỳ, số trang trong sitemap và các thay đổi bất thường được ghi theo từng lần kiểm; kết hợp với việc liếc qua danh sách truy vấn mỗi tuần là đủ để không bị bất ngờ.

Danh sách kiểm khi nghi bị tấn công

  • ☐ Xem Bảo mật và thao tác thủ công trong Search Console.
  • ☐ Lọc truy vấn và trang lạ trong báo cáo Hiệu suất 28 ngày.
  • ☐ Xem Cài đặt → Người dùng và quyền: có chủ sở hữu lạ?
  • ☐ Xem danh sách sitemap đã nộp và nội dung robots.txt.
  • ☐ Kiểm tra URL đang hoạt động với một đường dẫn lạ.
  • ☐ Sao lưu nguyên trạng, đổi mật khẩu, tìm cửa vào, dọn bằng bản sạch.
  • ☐ Trang rác trả 404/410, không chặn robots.txt, nộp sitemap sạch.
  • ☐ Gửi xem xét lại nếu có thao tác thủ công.

Với agency quản nhiều site khách, nên coi việc bị tấn công là sự cố có quy trình riêng, có người trực và có mẫu thư báo khách — như với các sự cố kỹ thuật sau deploy.

Hỏi đáp

Site nhỏ ít người biết thì có bị tấn công không?

Có. Phần lớn vụ chèn spam là tự động, máy quét hàng loạt site có plugin lỗ hổng, không chọn site theo độ nổi tiếng.

Dọn xong bao lâu thì hết trang rác trên Google?

Tuỳ số lượng: vài trăm trang có thể hết trong vài tuần; vài chục nghìn trang có thể mất vài tháng. Công cụ Xoá URL giúp ẩn tạm trong lúc chờ.

Có nên chuyển hướng trang rác về trang chủ?

Không. Trang rác nên trả 404 hoặc 410. Chuyển hướng về trang chủ làm Google mất thời gian xử lý hơn và không có lợi gì.

Thứ hạng có hồi lại sau khi dọn không?

Thường là có, khi trang rác đã được loại và thao tác thủ công (nếu có) đã được gỡ. Thời gian hồi phụ thuộc mức độ nhiễm và thời gian bị nhiễm.

Plugin bảo mật có đủ để chống tấn công?

Không đủ một mình. Nguyên nhân lớn nhất là plugin lỗ hổng, bản lậu và mật khẩu yếu. Plugin bảo mật chỉ là một lớp phụ.

Làm sao biết plugin đang dùng có lỗ hổng?

Xem ngày cập nhật gần nhất trên trang plugin chính thức và tra tên plugin trong các cơ sở dữ liệu lỗ hổng WordPress công khai. Plugin không cập nhật quá một năm nên thay.

Đọc tiếp

Cùng chuyên mục: Kiểm site định kỳ (9 bài)