Trang web bị hacker chèn liên kết ẩn|Cách khắc phục thứ hạng Google sụt giảm

本文作者:Don jiang

Website của bạn đột nhiên bị gắn link ẩn (暗链) mà không hay biết, nhẹ thì khiến thứ hạng Google tụt dốc, lượng truy cập giảm một nửa, nặng thì bị đánh dấu là “website nguy hiểm” và bị chặn hoàn toàn.

Phần lớn chủ website khi phát hiện ra bất thường thường đã bỏ lỡ giai đoạn vàng để xử lý — việc xóa trang hoặc tắt server một cách mù quáng chỉ khiến án phạt nặng thêm.

Với kinh nghiệm 8 năm làm SEO thực chiến, chúng tôi đã xử lý hơn 60 trường hợp bị gắn link ẩn, đúc kết ra quy trình chuẩn “chặn thiệt hại trong 72 giờ + kéo rank nhanh chóng”.

Từ việc định vị chính xác chỗ ẩn link đen (ví dụ dùng Screaming Frog để quét mã chuyển hướng ẩn), đến việc thủ công loại bỏ và gửi bằng chứng sửa lỗi lên Google (kèm mẫu thư yêu cầu xét duyệt thực tế), rồi đến việc đăng tải “nội dung uy tín” để làm loãng ảnh hưởng của backlink rác, mỗi bước đều cần bám sát 3 mốc thời gian quan trọng (24 giờ / 3 ngày / 7 ngày).

Lưu ý đặc biệt: Nếu từ khóa chính của website bạn tụt hơn 10 bậc trong 7 ngày qua, và trang index xuất hiện nhiều tham số kiểu “?redirect=cá cược”, rất có thể bạn đã bị hacker tấn công, hãy bắt đầu kiểm tra ngay từ phần đầu.

页面被黑客挂暗链

Website của bạn có thực sự bị gắn link ẩn không?

Link ẩn sẽ không tự bật popup, cũng không làm website bị sập ngay — điều này mới là nguy hiểm nhất.

Nhiều chủ site đến khi ranking Google tụt hơn 50% mới phát hiện, lúc đó link ẩn có thể đã tồn tại vài tuần, thậm chí Google đã đánh dấu site là “web độc hại”.

Theo các trường hợp chúng tôi xử lý, 70% link ẩn nằm trong thư mục ảnh, trang cũ hoặc script JS, rất khó phát hiện bằng mắt thường.

Tôi sẽ chỉ bạn cách rà soát với chi phí thấp nhất (không cần kiến thức code) để phát hiện “link ký sinh” trong 10 phút.

Google Search Console: Xem cảnh báo chính thức

  • Vào phần “Bảo mật & hành động thủ công” → báo cáo “Hành động thủ công”, nếu thấy cảnh báo đỏ “Liên kết bất thường” hoặc “Trang bị tấn công” thì chắc chắn bị gắn link ẩn.
  • Chú ý cạm bẫy: Một số hacker giả mạo trạng thái “không vấn đề” — bấm “Vấn đề bảo mật” → “Xem trang mẫu”, kiểm tra thủ công URL bị đánh dấu có chứa mã chuyển hướng (như <meta http-equiv="refresh" content="0;url=website cá cược">) hay không.

Công cụ quét mã chuyển hướng ẩn

Dùng Screaming Frog (bản miễn phí quét được 500 URL) quét toàn bộ site, lọc theo đặc điểm sau:

  1. Trang có số lượng link outbound bất thường (so với lịch sử, nếu trang có hơn 10 link cần cảnh giác)
  2. Link có “style=display:none” (xem trong mã như <a href="web cá cược" style="display:none">)
  3. Trang load file JS bên thứ 3 (kiểm tra <script src="http://domain lạ.js">)

Xác thực nhanh: Dùng tiện ích Chrome Link Redirect Trace để theo dõi xem trang có chuyển hướng 301 sang web cá cược không.

Kiểm tra index tìm trang “bóng ma” (Shadow Page)

Gõ trong thanh tìm kiếm Google:

site:tênmiền.com intitle:cá cược/ xổ số/ từ nhạy cảm  
site:tênmiền.com inurl:.php?ref=

Nếu xuất hiện nội dung bạn không tạo ra (như “Khuyến mãi casino trực tuyến”) nghĩa là hacker đã tạo trang rác trên site bạn.

Kiểm tra cuối cùng: Tìm trong log server (đường dẫn /var/log/apache2/access.log) từ khóa “.php?”, xem nguồn truy cập bất thường (như IP từ Việt Nam, Ukraine gửi POST liên tục).

Lưu ý quan trọng: Nếu link ẩn tập trung ở thư mục hình ảnh như /wp-content/uploads/2023/ thì hacker có thể đã lợi dụng lỗi upload media để chèn code, hãy kiểm tra tên file có dạng bất thường như <?php eval( không.

3 bước để loại bỏ hoàn toàn link ẩn

Khi phát hiện link ẩn, 72 giờ đầu là thời gian vàng để ngăn thiệt hại. Nhiều chủ site nóng vội xóa trang hoặc cài lại hệ thống lại kích hoạt “biến động nội dung bất thường” từ Google gây phạt lần hai.

Dựa trên hơn 60 case thực chiến, việc gỡ link ẩn phải tuân thủ nguyên tắc “lấy bằng chứng trước, rồi xử lý, đồng thời gửi yêu cầu sửa lỗi”.

1. Sao lưu toàn bộ website: tránh xóa nhầm dữ liệu quan trọng

Thư mục cần đặc biệt sao lưu:

  • /wp-content/uploads/ (kiểm tra file ảnh có kèm code PHP không)
  • /wp-includes/js/ (kiểm tra file jquery-migrate.min.js xem có bị sửa đổi không)

Công cụ gợi ý:

  • Bảng điều khiển BT Panel (宝塔面板) có chức năng sao lưu nguyên website kèm database chỉ với 1 click
  • Dùng plugin Duplicator tạo gói di chuyển website toàn bộ (bỏ qua file cache tự động)

2. Thủ công xóa mã độc (kèm đặc điểm nguy hiểm cao)

Tìm kiếm toàn bộ các từ khóa sau

php
eval(base64_decode('chuỗi mã hóa'));
 $k="mật khẩu hacker";error_reporting(0);
<iframe src="http://miền độc hại" style="visibility: hidden;">  

Ưu tiên kiểm tra các file sau

  • .htaccess (kiểm tra xem có bị chèn RewriteRule ^.*$ http://website cờ bạc [R=301,L] hay không)
  • header.php/footer.php (kiểm tra các lệnh gọi JS bất thường, ví dụ document.write(""))

Công cụ hỗ trợ

Dùng D-Shield (D_Safe) quét server, tự động đánh dấu các file chứa hàm nguy hiểm như system(), passthru().

3. Chặn lỗ hổng: ngăn chặn việc tấn công lại

  • Đổi đường dẫn đăng nhập quản trị (dành cho WordPress):
    Cài plugin WPS Hide Login, đổi /wp-admin/ thành đường dẫn tùy chỉnh (ví dụ /mylogin-2024/).
  • Sửa lỗi khẩn cấp:
    • Cập nhật tất cả plugin lên bản mới nhất (dùng WPScan để kiểm tra plugin có lỗi bảo mật).
    • Xóa các theme và plugin không dùng nữa (đặc biệt là các tên nghi vấn như wp-seo-optimize).
  • Tăng cường quyền trên server:
    bash
    Sao chép
    # Cấm thực thi PHP trong thư mục tải lên
    find /đường/dẫn/website/wp-content/uploads/ -type f -name "*.php" -exec rm -f {} \;
    chmod 644 .htaccess  # Giới hạn quyền ghi  

Lời khuyên quan trọng: Sau khi dọn sạch, hãy dùng ngay plugin Link Redirect Trace quét toàn bộ website để chắc chắn không còn mã chuyển hướng ẩn nào. Nếu phát hiện link ẩn lưu trong cơ sở dữ liệu (ví dụ trong bảng wp_posts ở trường post_content có mã mã hóa), hãy dùng công cụ Adminer chạy câu lệnh SQL sau:

UPDATE wp_posts SET post_content = REPLACE(post_content, 'đoạn mã độc', '');  

Gửi yêu cầu xem xét lại với Google

Xóa link ẩn chỉ là bước đầu, trong vòng 48 giờ cần gửi yêu cầu xem xét hợp lệ tới Google thì thứ hạng mới có thể hồi phục.

90% webmaster thất bại vì “thiếu bằng chứng” hoặc “lỗi ngôn từ”, thậm chí bị kiểm tra thủ công lần hai (kéo dài thời gian phục hồi 3-6 tháng).

Tôi có mẫu câu tiếng Anh có thể dùng trực tiếp để gửi, và bộ chứng cứ mạnh giúp tăng 80% khả năng duyệt.

1. Gửi yêu cầu xem xét “Manual Actions” qua Search Console

Quy trình:

Vào 「Bảo mật và thao tác thủ công」→ 「Manual Actions」→ bấm “Request Review”.

Mẫu câu tiếng Anh (thay phần màu đỏ cho phù hợp):

We have removed all spammy backlinks injected by hackers:  
1. Deleted malicious codes in .htaccess and footer.php (see screenshot_1.png).  
2. Blocked 142 suspicious IPs from Vietnam/Ukraine (access.log attached).  
3. Fixed the vulnerability via updating plugins (e.g. Elementor from 3.6 to 3.19).  
Request to revoke the manual penalty.  

File đính kèm cần thiết:

  1. Ảnh chụp so sánh mã trước và sau khi dọn (dùng WinMerge so sánh file)
  2. Đoạn log chặn IP độc hại trên server (có thời gian, IP, đường dẫn tấn công)
  3. Báo cáo quét backlink toàn site bằng Screaming Frog (xuất PDF)

2. Xử lý đồng thời báo cáo “Vấn đề bảo mật”

Vào 「Security Issues」→ chọn tất cả trang bị hack → bấm “Mark as fixed”.

Thủ thuật tăng tốc thu thập dữ liệu:

Dùng công cụ “Kiểm tra URL” nhập URL bị hack → bấm “Request Indexing” (mỗi ngày được gửi tối đa 50 URL).

3. Mẹo ẩn giúp tránh bị từ chối khi gửi review

  • Tránh dùng lời xin lỗi như “We apologize” (Google coi là đổ lỗi), nên mô tả sự việc theo thực tế.
  • Đính kèm báo cáo bảo mật bên thứ ba (như quét từ Sucuri hoặc SiteCheck) để chứng minh website đã sạch mã độc.

Liên tục cập nhật nội dung website:

Sau khi gửi yêu cầu review, trong 24 giờ đăng 2 bài viết gốc (Google coi đây là tín hiệu duy trì tích cực).

Lời khuyên quan trọng: Nếu sau 7 ngày vẫn chưa có phản hồi từ Google, hãy gửi sitemap.xml qua chức năng “Search Appearance → Crawl Stats” và ghi chú: “Malware cleaned up, please recrawl critical pages like /contact-us/ and /blog/”.

Nếu cảnh báo manual action chưa được gỡ, phải gửi lại yêu cầu với chứng cứ như cũ sau 28 ngày (để tránh kích hoạt cơ chế spam).

Danh sách cấu hình bảo vệ chi phí thấp

“Sợ tốn kém chi phí bảo vệ” là sai lầm lớn nhất — 80% hacker lợi dụng lỗ hổng cơ bản như plugin không cập nhật, mật khẩu yếu, đường dẫn admin mặc định.

Chúng tôi đã giúp khách hàng chặn hơn 20.000 lượt quét độc hại với ngân sách chưa đến 500 NDT mỗi năm.

Dù bạn chỉ biết thao tác máy chủ cơ bản, cũng có thể hoàn thành tăng cường bảo mật toàn website trong 1 giờ.

1. Bộ ba bảo vệ cơ bản (miễn phí)

Giám sát file thời gian thực:

  • Dùng chức năng “Chống chỉnh sửa file” trên bảng điều khiển BaoTa (miễn phí), khóa các file quan trọng như wp-config.php, .htaccess, khi có thay đổi sẽ báo qua SMS.

Chặn tấn công brute force:

  • Cài Wordfence (bản miễn phí) → bật “Theo dõi lưu lượng truy cập thời gian thực”, tự động khóa IP login sai quá 5 lần trong 15 phút.

Sao lưu tự động lên mây:

  • Dùng UpdraftPlus thiết lập sao lưu hàng ngày lên Google Drive (giữ 7 bản), nếu bị hack có thể rollback ngay phiên bản sạch.

2. Các thiết lập bảo mật máy chủ cần phải thay đổi ngay

Vô hiệu hóa các hàm PHP nguy hiểm:

Chỉnh sửa file php.ini, thêm vào phần disable_functions:

system,exec,passthru,shell_exec,proc_open,curl_multi_exec  

Giới hạn quyền truy cập thư mục upload:

# Cấm thực thi PHP trong /uploads/  
find /đường-dẫn-website/wp-content/uploads/ -type f -name "*.php" -delete  
chmod -R 755 /đường-dẫn-website/wp-content/uploads/  

Ẩn thông tin máy chủ:
Thêm vào đầu file .htaccess:

apache
ServerSignature Off  
Header unset X-Powered-By  

3. Quy tắc tường lửa (chi phí ≤ $20/tháng)

Cấu hình gói miễn phí Cloudflare:

  • Quy tắc 1: Thách thức mọi truy cập có chứa /wp-admin/ hoặc xmlrpc.php (trừ IP trong danh sách trắng)
  • Quy tắc 2: Chặn các yêu cầu có User-Agent chứa sqlmap hoặc nmap

Chặn IP các quốc gia nguy hiểm:

Thêm quy tắc chặn trong bảng điều khiển Baota:

Việt Nam: 14.224.0.0/11  
Nga: 46.161.0.0/18  
Ukraina: 37.52.0.0/14  

Lưu ý quan trọng: Hàng quý chạy quét lỗ hổng với WPScan (lệnh: wpscan --url tên-miền-của-bạn --api-token mã-token-của-bạn), ưu tiên xử lý các plugin có mức độ rủi ro trung bình trở lên.
Nếu dùng máy chủ Nginx, nhớ thêm cấu hình sau:

location ~* ^/(uploads|wp-content)/.*\.(php|php5|phtml)$ {  
    deny all;  
}  

(Chặn triệt để khả năng chạy mã PHP qua các file hình ảnh độc hại)

Đừng dựa hoàn toàn vào “plugin sửa lỗi tự động” — Chúng tôi đã phân tích 13 plugin bảo mật phổ biến, trong đó 9 plugin có vấn đề về quyền hạn quá cao hoặc xóa nhầm file.
Cấu hình thủ công (như rules .htaccess, quyền truy cập máy chủ) mới là cách kiểm soát tốt nhất.