Nhà phát triển tạo ra hệ thống phát hiện bot nhân văn ưu tiên người dùng thật hơn việc chặn crawler

Nhóm Cộng đồng BigGo
Nhà phát triển tạo ra hệ thống phát hiện bot nhân văn ưu tiên người dùng thật hơn việc chặn crawler

Một nhà phát triển đã chia sẻ cách tiếp cận sáng tạo của họ để xử lý các web crawler tích cực trong khi vẫn giữ trải nghiệm mượt mà cho khách truy cập là con người. Thay vì đưa ra những thử thách bao quát làm khó chịu mọi người, họ đã xây dựng một hệ thống thông minh chỉ làm phiền người dùng khi thực sự cần thiết.

Vấn đề bắt đầu khi hàng nghìn crawler tự động bắt đầu đào bới qua nhiều năm kho lưu trữ mã nguồn hàng ngày. Đây không phải là những khách truy cập thông thường - chúng là những bot có hệ thống quét mọi URL có thể, tạo ra tải lớn cho máy chủ và có khả năng cung cấp dữ liệu cho việc huấn luyện AI mà không có sự cho phép.

Chỉ số Tác động Hiệu suất:

  • Bất kỳ thử thách nào cũng chặn được hơn 99% lưu lượng crawler không mong muốn
  • 10 yêu cầu/giây tạo ra tải đáng kể do quá trình bắt tay TLS
  • Tải trọng lưu lượng gấp 4 lần có thể làm quá tải các máy chủ khiêm tốn
  • Các tiến trình nền từ Mastodon (1 yêu cầu/giây) và Lemmy (2 yêu cầu/giây) tạo thêm tải liên tục
  • Lưu lượng crawler làm giảm hiệu quả bộ nhớ đệm bằng cách đẩy ra nội dung hợp pháp

Việc đặt thử thách thông minh giảm ma sát với con người

Hệ thống chỉ thử thách khách truy cập trên các URL sâu mà những người duyệt web thông thường hiếm khi ghé thăm. Các trang phổ biến được lưu cache bởi reverse proxy, vì vậy hầu hết lưu lượng truy cập của con người thậm chí không bao giờ gặp phải hệ thống chống crawler. Khi ai đó tải file CSS của trang web, họ được đánh dấu là thân thiện vì các trình duyệt hợp pháp cần styling nhưng hầu hết crawler bỏ qua nó.

Nhà phát triển cũng theo dõi những URL cụ thể nào nhận được nhiều lượt truy cập. Nếu một liên kết được nhấp nhiều hơn một lần, hệ thống cho rằng đó là lưu lượng truy cập hợp pháp của con người và ngừng hiển thị thử thách cho trang đó. Điều này có nghĩa là các liên kết được chia sẻ hoạt động mượt mà cho mọi người sau khách truy cập đầu tiên.

Phân tích Chiến lược Phát hiện Bot:

  • Chỉ thách thức các URL sâu (ít hơn 1% tổng số URL nhưng chứa 99% nội dung thú vị)
  • Lưu cache các trang phổ biến qua reverse proxy để tránh xử lý không cần thiết
  • Đánh dấu người truy cập tải file CSS là "thân thiện"
  • Theo dõi các URL được truy cập nhiều lần và bỏ qua thách thức cho các liên kết được chia sẻ
  • Sử dụng câu hỏi logic con người thay vì thách thức proof-of-work tính toán

Những thử thách sáng tạo làm bối rối hệ thống tự động

Thay vì sử dụng các thử thách proof-of-work truyền thống mà máy tính xử lý tốt hơn con người, hệ thống đặt ra những câu hỏi đơn giản như Có bao nhiêu chữ R trong từ strawberry?. Những câu hỏi này đòi hỏi suy nghĩ thực sự thay vì sức mạnh tính toán. Hiểu biết quan trọng là bất kỳ thử thách nào cũng chặn được hơn 99% lưu lượng crawler không mong muốn.

Quan trọng là, các thử thách không bao gồm giải pháp của chúng trong JavaScript. Nhiều hệ thống bot có thể tự động giải quyết thử thách khi câu trả lời được nhúng trong mã trang, nhưng những thử thách này đòi hỏi đầu vào thực sự của con người.

Cộng đồng tranh luận về quyền truy cập và giải pháp thực tế

Cách tiếp cận này đã khơi mào cuộc thảo luận về việc ai xứng đáng được truy cập vào nội dung web công khai. Một số nhà phát triển cho rằng họ nên kiểm soát cách nội dung của họ được truy cập, đặc biệt khi các công ty AI tuyên bố sử dụng hợp lý trong khi bỏ qua giấy phép nội dung. Những người khác đặt câu hỏi liệu việc chặn tất cả bot có công bằng hay không, vì một số có thể là các dự án cá nhân hợp pháp.

Việc truy cập vào nội dung của tôi là một đặc quyền mà tôi cấp cho bạn. Tôi quyết định cách bạn được truy cập vào nó, và thông qua một bot mà thiết lập của tôi nhầm lẫn với một AI crawler thuộc về một tập đoàn AI chống lại con người không phải là cách hợp lệ để truy cập vào nó.

Cộng đồng kỹ thuật vẫn chia rẽ về các giải pháp. Trong khi một số đề xuất sử dụng các mạng phân phối nội dung như Cloudflare để bảo vệ bot dễ dàng hơn, những người khác đánh giá cao cách tiếp cận tùy chỉnh duy trì quyền kiểm soát trải nghiệm người dùng.

Tác động hiệu suất thúc đẩy sự đổi mới

Nhà phát triển lưu ý rằng việc xử lý 10 yêu cầu mỗi giây bao gồm nhiều hơn việc phục vụ trang đơn giản - TLS handshake và các quy trình nền từ mạng xã hội liên kết thêm overhead đáng kể. Một máy chủ khiêm tốn có thể nhanh chóng bị quá tải khi crawler nhân tải lên gấp bốn lần hoặc hơn.

Áp lực hiệu suất này đã dẫn đến các chiến lược caching sáng tạo và triển khai thử thách có chọn lọc. Hệ thống nhằm mục đích loại bỏ tải độc hại trong khi bảo tồn tài nguyên cho người dùng hợp pháp, chứng minh rằng kỹ thuật chu đáo có thể giải quyết các vấn đề mà việc chặn bằng vũ lực không thể.

Tham khảo: humanely dealing with humungus crawlers