Turnstile và Cloudflare Bot Challenge bảo vệ lưu lượng truy cập web như thế nào

Specialist in Anti-Bot Strategies
Với sự phát triển không ngừng của công nghệ trên Internet, bảo mật tài nguyên web trở thành mối quan tâm của chủ sở hữu và nhà phát triển trang web. Việc sử dụng các biện pháp bảo vệ hoạt động chống lại các cuộc tấn công tự động và bot ngày càng trở nên quan trọng.
Turnstile và Bot Challenge, hai trong số các công nghệ sáng tạo của Cloudflare, tạo nên sự kết hợp giữa khả năng sử dụng và bảo mật đáng tin cậy. Hãy cùng tìm hiểu sâu hơn về quy trình hoạt động của chúng.
Mục tiêu chính của việc phát triển các công nghệ này, theo các nhà phát triển, là giảm thiểu các cuộc tấn công bot độc hại mà không ảnh hưởng đến người dùng thực.
Cách Cloudflare tìm kiếm Bot
Dịch vụ này sử dụng cả hai kỹ thuật phát hiện bot chủ động (phía máy khách) và thụ động (phía máy chủ).
Phương pháp thụ động
Xác định botnet
Cloudflare lập danh mục các thiết bị, địa chỉ IP và hành vi liên quan đến botnet nguy hiểm. Bất kỳ thiết bị nào được cho là kết nối với một trong những mạng này sẽ bị chặn ngay lập tức hoặc có thêm các vấn đề phía máy khách cần khắc phục.
Uy tín IP
Uy tín của địa chỉ IP của người dùng được xác định bởi một số biến, bao gồm vị trí, ISP và lịch sử uy tín của họ. Ví dụ: địa chỉ IP từ trung tâm dữ liệu hoặc dịch vụ VPN uy tín sẽ ít uy tín hơn so với địa chỉ IP từ nơi ở. Vì lưu lượng truy cập từ máy khách thực tế không bao giờ bắt nguồn từ bên ngoài khu vực dịch vụ của nó, nên trang web cũng có thể áp đặt hạn chế đối với quyền truy cập từ các khu vực như vậy.
Tiêu đề cho yêu cầu HTTP
Cloudflare sử dụng tiêu đề yêu cầu HTTP để xác minh. Bộ phân tích cú pháp của bạn có thể bị nhầm là bot nếu nó có User Agent không phải trình duyệt. Một bot có thể bị dịch vụ chặn nếu nó gửi yêu cầu mà không có bất kỳ tiêu đề nào. hoặc nếu, dựa trên User Agent của bạn, có những tiêu đề không khớp.
Dấu vân tay TLS
Khi bạn kết nối với máy chủ, dấu vân tay TLS được tạo ra. Để xác định băm dấu vân tay, hệ thống kiểm tra đường cong elip, phần mở rộng và bộ mã hóa.
Nếu tiêu đề User Agent từ yêu cầu máy khách khớp với User Agent được liên kết với băm dấu vân tay được ghi lại, hệ thống bảo mật kết luận rằng yêu cầu bắt nguồn từ trình duyệt thông thường. Nếu những dữ liệu này không tương ứng, yêu cầu sẽ bị từ chối.
Dấu vân tay HTTP/2
Mỗi yêu cầu máy khách sẽ có dấu vân tay HTTP/2 tĩnh, giống như với dấu vân tay TLS. Cloudflare luôn xác minh tính xác thực của yêu cầu bằng cách so sánh cặp dấu vân tay và User Agent từ yêu cầu với cặp từ danh sách trắng được lưu trữ trong cơ sở dữ liệu.
Dấu vân tay TLS và HTTP/2 gần như giống nhau. Hai kỹ thuật này là những kỹ thuật khó theo dõi nhất về mặt kỹ thuật dựa trên các yêu cầu trong số tất cả các kỹ thuật phát hiện bot thụ động mà Cloudflare sử dụng. Tuy nhiên, chúng là những kỹ thuật quan trọng nhất.
Phương pháp chủ động
Lắng nghe sự kiện
Các trang web có thể có thêm chức năng addEventListener do Cloudflare thêm bằng JavaScript, cho phép trang web theo dõi đầu vào của người dùng như nhấp chuột, gõ phím và chuyển động. Rất có thể người dùng là bot nếu họ không sử dụng chúng.
Yêu cầu API
API dành riêng cho một trình duyệt nhất định. Những yêu cầu này có mặt trong một số trình duyệt nhất định, nhưng có thể không có trong những trình duyệt khác.
Ví dụ, thuộc tính window.chrome là duy nhất cho trình duyệt web Chrome. Sẽ rõ ràng là có điều gì đó không ổn nếu dữ liệu bạn đang truyền nói rằng bạn đang sử dụng Chrome, nhưng bạn đang gửi nó bằng User Agent cho Firefox.
API cho dấu thời gian
Dịch vụ theo dõi số liệu tốc độ của người dùng bằng cách sử dụng API dấu thời gian như Date.now() và window.performance.timing.navigationStart. Người dùng sẽ bị cấm nếu các thẻ không khớp với hành vi trực tuyến điển hình của họ.
Phát hiện trình duyệt tự động
Chỉ các thiết lập tự động mới có các thuộc tính mà Cloudflare yêu cầu. Ví dụ, PhantomJS và Selenium được sử dụng khi window.document.__selenium_unwrapped hoặc window.callPhantom có mặt. Nếu điều này được phát hiện, bạn sẽ bị cấm vì lý do rõ ràng.
Xác định SandBox
Các kiểm tra, như các kiểm tra trong NodeJS sử dụng JSDOM, sẽ dừng các ngữ cảnh trình duyệt mô phỏng. Script có khả năng tìm kiếm tệp đối tượng quy trình, tệp này là duy nhất cho NodeJS.
Function.prototype.toString.call(functionName) cũng có thể được sử dụng để tìm hiểu xem các chức năng đã bị sửa đổi hay chưa.
Cloudflare Turnstile
Cloudflare Turnstile là một sự thay thế thông minh cho CAPTCHA. Nó có thể được tích hợp vào bất kỳ tài nguyên trang web nào mà không yêu cầu người dùng gửi captcha hoặc định tuyến lưu lượng truy cập qua Cloudflare.
Gọi Máy chủ Nguồn để khắc phục Cloudflare CDN
Sẽ tốt hơn nếu chúng ta có thể gửi yêu cầu trực tiếp đến máy chủ nguồn, vì Cloudflare chỉ có thể chặn các yêu cầu đi qua mạng của nó. Không có bảo mật nào cản trở dữ liệu cần thiết của bạn!
Bạn phải thực hiện hai bước:
1. Xác định địa chỉ IP của nguồn.
Các bản ghi DNS bị che khuất trên các trang web bảo mật. Tuy nhiên, điều này có thể không xảy ra ở mọi nơi: tin nhắn email, dịch vụ lỗi thời và các tên miền phụ không được bảo vệ có thể vẫn tham chiếu đến máy chủ gốc ngay cả khi chúng có thể truy cập được dưới cùng một tên miền.
2. Yêu cầu dữ liệu đến máy chủ gốc.
Tuyệt vời - bạn vẫn có địa chỉ IP gốc! Vậy bây giờ tôi nên làm gì với nó? Mặc dù nó có thể không hoạt động, nhưng bạn có thể thử dán nó vào thanh địa chỉ của trình duyệt của mình. Đây là một cài đặt máy chủ tiêu chuẩn để chỉ chấp nhận các kết nối sử dụng tên miền hợp lệ và không phải địa chỉ IP. Chúng ta phải tránh xa chúng vì DNS được sử dụng với tên miền.
Vì Cloudflare thực sự sử dụng các biện pháp bảo mật như phòng chờ, nên cách tiếp cận này thường thất bại.
Phòng chờ: nó là gì? Để xác minh rằng bạn không phải là robot, trình duyệt của bạn phải hoàn thành một số tác vụ nhất định. Thông báo "Truy cập bị từ chối" sẽ xuất hiện nếu bạn bị gắn cờ là bot. Nếu không, một chuyển hướng tự động đến trang web thực tế sẽ diễn ra.
Trong một thời gian ngắn, bạn sẽ ở trong khu vực chờ của Cloudflare. Mức độ bảo mật của mục tiêu và mức độ parser của bạn vượt qua các bài kiểm tra sẽ xác định thời gian chính xác. Bạn sẽ có một số thời gian để duyệt trang web sau khi hoàn thành nhiệm vụ một lần.
Làm cách nào để sửa phòng chờ trên Cloudflare? Lý tưởng nhất là, hãy chứng minh tính con người của bạn bằng cách hoàn thành các công việc JavaScript. Phân tích thử thách JavaScript của Cloudflare để hiểu thuật toán chịu trách nhiệm tạo ra tác vụ và xác nhận câu trả lời là một chiến lược khả thi, tuy nhiên. để kịch bản có thể được thiết kế lại.
Chọn User Agent một cách thận trọng và sử dụng proxy nhà ở cao cấp là điều cần thiết khi tiếp cận Bot Challenge và Turnstile.
Kết luận
Xét đến mọi thứ đã nói ở trên, cách tiếp cận đơn giản nhất là tin tưởng vào các công nghệ được tạo ra để vượt qua Thử thách Bot và Turnstile của Cloudflare cho các tài nguyên như Scrapeless, cung cấp một giải pháp hiệu quả cho các loại bảo mật này với chi phí thấp hơn đáng kể so với những giải pháp khác.
Bạn có mệt mỏi với CAPTCHA và các khối web scraping liên tục không?
Scrapeless: giải pháp web scraping tất cả trong một tốt nhất hiện có!
Sử dụng bộ công cụ mạnh mẽ của chúng tôi để khai thác hết tiềm năng của việc trích xuất dữ liệu của bạn:
Giải pháp CAPTCHA tốt nhất
Giải quyết tự động các CAPTCHA phức tạp để đảm bảo việc scraping liên tục và trơn tru.
Hãy thử miễn phí!
Tại Scrapeless, chúng tôi chỉ truy cập dữ liệu có sẵn công khai trong khi tuân thủ nghiêm ngặt các luật, quy định hiện hành và chính sách bảo mật của trang web. Nội dung trong blog này chỉ nhằm mục đích trình diễn và không liên quan đến bất kỳ hoạt động bất hợp pháp hoặc vi phạm nào. Chúng tôi không đảm bảo và từ chối mọi trách nhiệm pháp lý đối với việc sử dụng thông tin từ blog này hoặc các liên kết của bên thứ ba. Trước khi tham gia vào bất kỳ hoạt động thu thập dữ liệu nào, hãy tham khảo ý kiến cố vấn pháp lý của bạn và xem lại các điều khoản dịch vụ của trang web mục tiêu hoặc có được các quyền cần thiết.