Liệu HeadlessChrome có đang gặp phải tình trạng lưu lượng truy cập cao bất thường? Hướng dẫn 3 bước của Cloudflare để chặn hoàn toàn (bằng các quy tắc WAF)

Tôi vừa kiểm tra phần quản trị của trang web và thấy rằng số lượt truy cập trung bình mỗi ngày chỉ khoảng vài nghìn.

Khi tôi mở Google Analytics, tôi hoàn toàn sững sờ.

Một ngày nọ, lượt xem trang của tôi đột nhiên tăng vọt lên hơn 20.000 lượt, và tôi vô cùng vui mừng, nghĩ rằng cuối cùng mình đã nổi tiếng. Nhưng khi xem xét kỹ hơn về phân bố trình duyệt, tôi phát hiện ra rằng 90% lưu lượng truy cập đến từ một thứ gọi là "HeadlessChrome".

Tôi đã hỏi ChatGTP đây là trình duyệt gì? Có phải là phiên bản Chrome mới không?

Trí tuệ nhân tạo trả lời rằng đây không phải là trình duyệt.

Đây là một con robot.

Liệu HeadlessChrome có đang gặp phải tình trạng lưu lượng truy cập cao bất thường? Hướng dẫn 3 bước của Cloudflare để chặn hoàn toàn (bằng các quy tắc WAF)

HeadlessChrome thực chất là gì?

HeadlessChrome, như tên gọi cho thấy, là chế độ không giao diện người dùng (headless mode) của Chrome. Chrome là trình duyệt bạn sử dụng hàng ngày. Chế độ không giao diện người dùng vô hiệu hóa giao diện đồ họa của trình duyệt, cho phép nó chạy ngầm chỉ bằng dòng lệnh.

Không có thanh địa chỉ, không có thanh dấu trang, không có gì bạn có thể nhìn thấy. Nó chỉ là một đoạn mã gọi công cụ trình duyệt, tải trang web của bạn, và sau đó trích xuất nội dung.

Người dùng thực sự sẽ không bao giờ sử dụng thứ như thế này để duyệt web. Bạn và tôi mở Chrome để đọc tin tức, xem video và mua sắm trên Taobao . HeadlessChrome mở trang web của bạn để thu thập dữ liệu rồi biến mất.

Vì vậy, khi bạn thấy HeadlessChrome chiếm 80% hoặc thậm chí 90% lưu lượng truy cập trong thống kê của mình, bạn có thể kết luận rằng lưu lượng truy cập này hoàn toàn là từ bot.

Lưu lượng truy cập từ bot này đến từ đâu vậy?

Thành thật mà nói, các nguồn thông tin rất đa dạng.

Ví dụ phổ biến nhất là web scraping. Một số công ty hoặc cá nhân sử dụng các framework tự động hóa như Puppeteer, Playwright hoặc Selenium để khởi chạy trình duyệt không giao diện người dùng và thu thập hàng loạt nội dung trang web. Một số thu thập giá sản phẩm, một số thu thập bài báo tin tức, và một số thu thập dữ liệu của đối thủ cạnh tranh.

Và rồi còn có trí tuệ nhân tạo (AI). Hiện nay, nhiều công cụ AI, công cụ tìm kiếm AI và hệ thống truy xuất AI đang xử lý các trang web ở chế độ nền. Khi bạn đăng tải một bài viết, hàng chục tác nhân AI có thể đang đọc nội dung của bạn cùng một lúc.

Một phương pháp khác, tinh tế hơn, là sử dụng các tác vụ theo lịch trình của riêng bạn. Ví dụ, bạn có thể triển khai một kịch bản giám sát SEO kiểm tra sự thay đổi thứ hạng của một trang cụ thể mỗi giờ, sử dụng HeadlessChrome. Hoặc bạn có thể thiết lập một dịch vụ chụp ảnh màn hình tự động định kỳ chụp ảnh trang đó, cũng sử dụng công cụ này.

Loại khó chịu nhất là loại cuối cùng: quét độc hại. Các kịch bản tự động chạy để quét trang web của bạn tìm lỗ hổng bảo mật, kiểm tra giao diện đăng nhập quản trị và thậm chí gửi hàng loạt bình luận spam.

Hệ thống thống kê phía máy chủ xác định HeadlessChrome như thế nào?

Thực ra khá đơn giản. Mỗi trình duyệt đều bao gồm trường User-Agent trong tiêu đề yêu cầu khi truy cập một trang web, cho máy chủ biết "tôi là ai". User-Agent mặc định của HeadlessChrome bao gồm chuỗi "HeadlessChrome". Hệ thống phân tích của bạn sẽ biết điều này sau khi phân tích trường này.

Tuy nhiên, nếu nhà phát triển trình thu thập dữ liệu web thực hiện một thay đổi nhỏ trong mã, chẳng hạn như thay đổi User-Agent thành mã định danh thông thường của Chrome hoặc Safari, thì bạn sẽ hoàn toàn không thể nhận biết được điều đó từ hệ thống thống kê. Đây mới chính là vấn đề đau đầu thực sự.

Sử dụngCloudFlare WAF chặn chính xác HeadlessChrome

Được rồi, chúng ta đã xác định được vấn đề. Vậy làm thế nào để giải quyết nó?

Giải pháp trực tiếp và hiệu quả nhất là chặn lưu lượng truy cập ở lớp CDN hoặc WAF. Đừng chờ đến khi lưu lượng truy cập đến máy chủ của bạn mới xử lý; hãy chặn nó ngay tại cửa ngõ.

Nếu bạn đang sử dụng Cloudflare, thao tác này thực ra rất đơn giản.

Đăng nhập vào bảng điều khiển Cloudflare của bạn, chọn tên miền mục tiêu, tìm mục Bảo mật, sau đó nhấp vào WAF, rồi chuyển đến Quy tắc tùy chỉnh và tạo quy tắc mới.

Tên quy tắc có thể là bất kỳ thứ gì, ví dụ, "Challenge Headless Chrome"và những thứ tương tự,

Đăng nhập vào bảng điều khiển Cloudflare của bạn, chọn tên miền mục tiêu, tìm mục Bảo mật, sau đó nhấp vào WAF, rồi chuyển đến Quy tắc tùy chỉnh và tạo quy tắc mới.

Hãy nhớ lấy điều đó.

Lựa chọn lĩnh vựcUser AgentLựa chọn nhà điều hànhcontains, điền giá trị vàoHeadlessChrome.

Tại bước này, bạn sẽ thấy một biểu thức xem trước, đó là...http.user_agent contains "HeadlessChrome"

Sau đó chọn trong thao tácManaged Challengehoặc làJS Challenge.

  • Tôi đề nghị lựa chọnManaged ChallengeVì phương pháp xác minh của nó thông minh hơn và ít ảnh hưởng đến người dùng thực.

Cuối cùng, nhấp vào Triển khai, và quy tắc này sẽ có hiệu lực trên toàn cầu.

Cloudflare có hàng trăm máy chủ trên toàn thế giới, được cấu hình với đồng bộ hóa cấp hai. Về cơ bản, lưu lượng truy cập của trình duyệt không giao diện người dùng sẽ bị chặn ngay khi bạn nhấp vào nút.

Những điểm mù trong công tác bảo vệ và phòng ngừa nâng cao

Tuy nhiên, vẫn có một điều cần lưu ý.

Việc chỉ cần khớp User-Agent có thể giải quyết hầu hết các cấu hình trình thu thập dữ liệu web với cài đặt mặc định. Tuy nhiên, điều đó vẫn chưa đủ để đối phó với các trình thu thập dữ liệu chuyên nghiệp.

Bắt đầu từ Chrome 110, Google đã giới thiệu chế độ headless mới, sử dụng...--headless=newKhởi động tham số. Ở chế độ này, User-Agent của HeadlessChrome hoàn toàn giống với User-Agent của Chrome thông thường, và bạn hoàn toàn không thể nhận ra sự khác biệt.

Cũng có những kẻ chủ động giả mạo. Các nhà phát triển trình thu thập dữ liệu web trực tiếp thay thế User-Agent bằng mã định danh trình duyệt Chrome hoặc trình duyệt di động thông thường trong mã nguồn, khiến việc đối sánh trở nên bất khả thi ngay cả với các quy tắc chính xác nhất.

Trong trường hợp này, Cloudflare cũng cung cấp thêm hai tính năng nâng cao có thể được kích hoạt.

Chức năng đầu tiên được gọi là Kiểm tra tính toàn vẹn trình duyệt.

Để kích hoạt tính năng này, hãy vào Bảo mật → Cài đặt → Kiểm tra tính toàn vẹn trình duyệt và bật công tắc.

Để kích hoạt tính năng này, hãy vào Bảo mật → Cài đặt → Kiểm tra tính toàn vẹn trình duyệt và bật công tắc.

Nó xác định lưu lượng truy cập bất thường thông qua dấu vân tay TLS. Cho dù bạn ngụy trang User-Agent tốt đến đâu, dấu vân tay TLS cũng không thể làm giả.

Chế độ thứ hai được gọi là Chế độ Chiến đấu Robot, hay chế độ đấu robot.

Đường dẫn là Bảo mật → Chương trình tự động → Chế độ chiến đấu của Bot, chế độ này cũng cần được kích hoạt.

Đường dẫn là Bảo mật → Chương trình tự động → Chế độ chiến đấu của Bot, chế độ này cũng cần được kích hoạt.

Tính năng này kết hợp các đặc điểm hành vi để xác định xem lưu lượng truy cập có thuộc về bot hay không, chẳng hạn như tần suất yêu cầu, quỹ đạo di chuyển chuột, thời gian lưu lại trên trang, v.v.

Phiên bản miễn phí sẽ tự động áp dụng các thử thách được quản lý cho các bot đáng ngờ, trong khi phiên bản trả phí cho phép cấu hình quy tắc chi tiết hơn.

Từ thư rác đến trình thu thập dữ liệu web, cuộc chiến giữa kẻ tấn công và người phòng thủ chưa bao giờ dừng lại.

Nhắc đến chuyện này, một ý tưởng chợt nảy ra trong đầu tôi.

Trên thực tế, kiểu đối đầu tấn công và phòng thủ này đã diễn ra xuyên suốt lịch sử của internet. Điều tương tự cũng xảy ra khi thư rác hoành hành trong những ngày đầu; bạn chặn một tính năng, và người gửi lại thay đổi nó. Bạn sử dụng bộ lọc từ khóa, và người gửi lại phân tích các từ nhạy cảm. Bạn sử dụng giới hạn tần suất, và người gửi lại giảm tần suất gửi.

Ngày nay, nó đã trở thành một cuộc chiến giữa các trang web và các trình thu thập dữ liệu web. Bạn sử dụng bộ lọc User-Agent, và phía bên kia lại giả mạo User-Agent. Bạn sử dụng kỹ thuật nhận dạng dấu vân tay TLS, và phía bên kia lại bắt đầu nghiên cứu cách mô phỏng dấu vân tay TLS.

Công nghệ có thể thay đổi, nhưng logic cơ bản của lý thuyết trò chơi thì không bao giờ thay đổi.

Tuy nhiên, đối với hầu hết chủ sở hữu trang web, chỉ cần thực hiện bước trước đó là đủ.

80% lưu lượng truy cập Chrome không giao diện người dùng đến từ các trình thu thập thông tin được cấu hình mặc định, chúng quá lười biếng để ngụy trang, điều này có thể được giải quyết bằng một quy tắc WAF duy nhất. Còn đối với những trình thu thập thông tin ngụy trang tinh vi, trừ khi bạn có dữ liệu đặc biệt nhạy cảm cần được bảo vệ, thì không cần phải quá lo lắng.

Sau khi kích hoạt tất cả các tính năng cần thiết, về cơ bản bạn đã hoàn tất.

Cuối cùng, tôi muốn bổ sung thêm một điều nữa.

Nhiều người tin rằng lưu lượng truy cập website càng nhiều càng tốt. Tuy nhiên, nếu bạn không thể phân biệt giữa lưu lượng truy cập thực và bot, thì những con số tăng vọt đó chỉ là số liệu ảo. Chúng thậm chí có thể đánh lừa bạn, khiến bạn nghĩ rằng một nội dung nào đó đặc biệt phổ biến trong khi đó chỉ đơn giản là do trình thu thập dữ liệu web đang tải ồ ạt trang của bạn.

Hiểu được bản chất thực sự của giao thông quan trọng hơn nhiều so với việc chỉ theo đuổi các con số thống kê giao thông.

Nếu bạn có bạn bè quản lý website hoặc làm SEO, hãy thoải mái chia sẻ bài viết này với họ. Nhiều người có thể không nhận ra rằng website của họ đang bị tấn công bởi một lượng lớn bot, cũng như không biết rằng việc giải quyết vấn đề này thực ra khá đơn giản.

Vì bạn đã đọc đến đây, nếu thấy hữu ích, hãy nhấn thích và chia sẻ nhé. Nếu muốn nhận thông tin cập nhật sớm nhất, bạn cũng có thể theo dõi tôi!

Cảm ơn bạn đã đọc bài viết của tôi. Hẹn gặp lại lần sau.

Hy vọng bài viết "Lưu lượng truy cập bất thường của HeadlessChrome? Hướng dẫn 3 bước của Cloudflare để chặn triệt để (với các quy tắc WAF)" được chia sẻ trên blog của Chen Weiliang ( https://www.chenweiliang.com/ ) sẽ hữu ích cho bạn.

Bạn có thể thoải mái chia sẻ liên kết bài viết này: https://www.chenweiliang.com/cwl-34500.html

Để khám phá thêm nhiều mẹo ẩn🔑, vui lòng tham gia kênh Telegram của chúng tôi!

Chia sẻ và thích nếu bạn thích nó! Những chia sẻ và lượt thích của bạn là động lực tiếp tục của chúng tôi!

 

发表 评论

您的邮箱地址不会被公开。必填项已用*标注

Di chuyển về đầu trang