NET Core để thư giãn - j88vip1

/imgposts/984pfpvr.jpg

Gần đây, khi tôi theo dõi thống kê từ Baidu trên trang blog của mình, tôi thường xuyên phát hiện một tên miền kỳ lạ xuất hiện trong bản ghi truy cập.

  • Tên miền chính thức của tôi là www.sunzhongwei.com
  • Còn tên miền lạ lẫm này là okinm.fun

Tôi lập tức nghĩ đến khả năng trang web của mình lại bị sao chép. Đây không j88vip1 phải lần đầu tiên - vào năm 2021 tôi cũng đã phát hiện một trường hợp tương tự.

Điều kỳ lạ là khi tôi thử truy cập tên miền này, dù sử dụng http hay https, đều nhận được thông báo 404 - trang không tồn tại.

Tôi đã kiểm tra kỹ lưỡng nhật ký Nginx trên server của mình nhưng không tìm thấy bất kỳ dấu vết nào của các yêu cầu từ tên miền này. Thêm vào đó, lệnh dig cho thấy tên miền đang sử dụng dịch vụ proxy của Cloudflare và không liên kết đến IP server của tôi trên Alibaba Cloud.

$ dig +trace okinm.fun
okinm.fun.       3600  IN   NS   carmelo.ns.cloudflare.com.
okinm.fun.       3600  IN   NS   natasha.ns.cloudflare.com.
okinm.fun.       300   IN   A    172.67.180.62
okinm.fun.       300   IN   A    104.21.35.223

Vì không nhìn thấy gì khả nghi, tôi đã bỏ qua, cho rằng đây chỉ là một thủ thuật nhỏ để quảng cáo thông qua lỗ hổng của hệ thống thống kê Baidu.

Tuy nhiên, sáng nay khi thấy tên miền này tiếp tục xuất hiện trong thống kê, tôi cảm thấy có điều không ổn. Theo lý thuyết, nếu chỉ để đăng quảng cáo thì người ta cần phải hiển thị nội dung khi truy cập chứ?

Nhìn vào giao diện đơn giản của trang 404, tôi chợt nảy ra ý tưởng: Liệu có phải tên miền này đã chặn IP từ Việt Nam?

Quả nhiên, khi chuyển sang địa chỉ IP từ Đức, tôi đã có thể xem được phiên bản được sao chép của trang web mình - nhưng đã được chuyển sang tiếng Hoa phồn thể! 😅

Rõ ràng họ đã thiết lập chặn truy cập từ khu vực Việt Nam. Anh bạn này chơi thật khéo léo!

Sau khi truy cập vài trang, tôi đã tìm thấy các yêu cầu tương ứng trong nhật ký Nginx của mình. Mặc dù tên miền được truy cập là khác nhau, nhưng yêu cầu thực tế lại như sau:

103.233.11.60 - - [07/Sep/2024:08:29:39 +0800] "GET /net-8-aspnet-core-503-error-nginx HTTP/1.1" 200 30309 " "Mozilla/5.0 (compatible; Googlebot/2.1; + "-"

Hóa ra lý do không tìm thấy tên miền trong nhật ký Nginx là vì http_referer vẫn là tên miền của tôi. Đối phương còn cố gắng ngụy trang http_user_agent thành Googlebot. Nhưng IP 103.233.11.60 dễ dàng lộ rõ nguồn gốc từ Hong Kong - thuộc trung tâm dữ liệu CDN520.

May mắn là tuần trước tôi đã viết một công cụ phân tích IP thời gian thực bằng ASP.NET Core để thư giãn. Công cụ này giúp tôi thấy rõ IP này đã có 935 lượt truy cập hôm qua. Dấu hiệu nhận diện IP nguồn gốc sẽ rất hữu ích trong tương lai.

Ban đầu tôi định chuyển hướng 301 các yêu cầu từ IP này về tên miền của mình. Nhưng xét thấy lượng truy cập mỗi tháng chỉ đếm trên đầu ngón tay, tôi quyết định chặn hoàn toàn IP này trong nhóm bảo mật server trên Alibaba Cloud.

Tên miền này được đăng ký bởi Zhang Zhen Yu tại Thiên Tân:

$ whois okinm.fun
Domain Name: OKINM.FUN
Registry Domain ID: D455866518-CNIC
Registrar WHOIS Server: grs-whois.hichina.com
Registrar URL:
Updated Date: 2024-08-29T09:44:39.0Z
Creation Date: 2024-05-20T03:00:36.0Z
Registry Expiry Date: 2025-05-20T23:59:59.0Z
Registrar: Alibaba Cloud Computing Ltd. d/b/a HiChina (www.net.cn)
Registrar IANA ID: 1599
Domain Status: ok 
Registrant Organization: zhang zhen yu
Registrant State/Province: tian jin
Registrant Country: CN

Một cách hay để ngăn chặn tình trạng này là thêm mã JavaScript để kiểm tra tên miền và chuyển hướng nếu không đúng. Ví dụ:

1// Lấy URL trang hiện tại
2var currentUrl = window.location.href;
3// Lấy tên miền trang hiện tại
4var currentHost = window.location.hostname;
5// Kiểm tra tên miền có phải là "www.sunzhongwei.com" không
6if (currentHost !== "www.sunzhongwei.com") {
7  // Nếu không phải, chuyển hướng đến...
8  window.location.href = "www.sunzhongwei.com";
9}

Hy vọng những chia sẻ này sẽ giúp các blogger khác bảo vệ tốt hơn trang web của mình.