Khi bạn thu thập dữ liệu từ các trang web quy mô lớn, ít có khả năng bạn không phải đối mặt với CAPTCHA để chứng minh rằng bạn là con người. Là một người quét web, bạn có thể đã biết lý do tại sao các chuyên gia an ninh mạng buộc phải phát minh ra chúng. Chúng là kết quả của việc bot của bạn tự động hóa các yêu cầu trang web vô tận để truy cập chúng. Vì vậy, ngay cả những người dùng chân chính cũng phải trải qua những khó khăn khi đối đầu với CAPTCHA xuất hiện dưới nhiều hình thức khác nhau. Tuy nhiên, bạn có thể bỏ qua CAPTCHA cho dù bạn có phải là người quét web hay không, đó sẽ là mục tiêu của bài viết này. Nhưng trước tiên, chúng ta hãy đi sâu vào CAPTCHA là gì.
CAPTCHA là viết tắt của Totally Automated Public Turing Test để phân biệt máy tính và con người. Đó là một từ viết tắt khá dài, phải không? Bây giờ bạn có thể tự hỏi phần cuối cùng của từ viết tắt này, Kiểm tra Turing có nghĩa là gì - tốt, đây là một bài kiểm tra đơn giản để xác định xem con người hay bot đang tương tác với trang web hoặc máy chủ web.
Xét cho cùng, CAPTCHA phân biệt con người với bot, giúp các nhà phân tích an ninh mạng bảo vệ các máy chủ web khỏi các cuộc tấn công vũ phu, DDoS và trong một số tình huống, quét web.
Chúng ta hãy tìm hiểu làm thế nào CAPTCHA phân biệt con người với bot.
Bạn có thể tìm thấy CAPTCHA trong các hình thức của một trang web, bao gồm liên hệ, đăng ký, nhận xét, đăng ký hoặc biểu mẫu thanh toán.
CAPTCHA truyền thống bao gồm một hình ảnh với các chữ cái, số kéo dài hoặc mờ hoặc cả hai trong một hộp có màu nền hoặc nền trong suốt. Sau đó, bạn phải xác định các ký tự và nhập chúng vào trường văn bản theo sau. Quá trình xác định ký tự này dễ dàng hơn đối với con người nhưng hơi phức tạp đối với bot.
Mặt khác, một số bot tiên tiến có thể chặn các chữ cái bị bóp méo với sự hỗ trợ của học máy trong những năm qua. Kết quả là, một số công ty như Google đã thay thế CAPTCHA thông thường bằng CAPTCHA tinh vi. Một ví dụ như vậy là ReCAPTCHA mà bạn sẽ khám phá trong phần tiếp theo.
ReCAPTCHA là một dịch vụ miễn phí mà Google cung cấp. Nó yêu cầu người dùng đánh dấu vào các hộp thay vì nhập văn bản, giải câu đố hoặc phương trình toán học.
Một ReCAPTCHA điển hình tiên tiến hơn các dạng CAPTCHA thông thường. Nó sử dụng hình ảnh và văn bản trong thế giới thực như đèn giao thông trên đường phố, văn bản từ báo cũ và sách in. Do đó, người dùng không phải dựa vào CAPTCHA cũ với văn bản mờ và méo mó.
Có ba loại xét nghiệm ReCAPTCHA quan trọng để xác minh xem bạn có phải là con người hay không:
Đây là những ReCAPTCHA yêu cầu người dùng đánh dấu vào hộp kiểm, "Tôi không phải là robot" như trong hình trên. Mặc dù có vẻ như bằng mắt thường rằng ngay cả một bot cũng có thể hoàn thành thử nghiệm này, một số yếu tố được tính đến:
Nếu ReCAPTCHA không xác minh được rằng bạn là con người, nó sẽ đưa ra cho bạn một thách thức khác.
Các ReCAPTCHA này cung cấp cho người dùng chín hoặc mười sáu hình ảnh vuông như bạn có thể thấy trong hình trên. Mỗi ô vuông đại diện cho một phần của hình ảnh lớn hơn hoặc các hình ảnh khác nhau. Người dùng phải chọn các ô vuông đại diện cho các đối tượng, động vật, cây cối, phương tiện hoặc đèn giao thông cụ thể.
Nếu lựa chọn của người dùng khớp với lựa chọn của những người dùng khác đã thực hiện cùng một thử nghiệm, người dùng sẽ được xác minh. Nếu không, ReCAPTCHA sẽ đưa ra một bài kiểm tra khó khăn hơn.
Bạn có biết rằng ReCAPTCHA có thể xác minh xem bạn có phải là con người hay không mà không cần sử dụng hộp kiểm hoặc bất kỳ tương tác người dùng nào?
Nó chắc chắn làm bằng cách xem xét lịch sử tương tác của người dùng với các trang web và hành vi chung của người dùng khi trực tuyến. Trong hầu hết các tình huống, dựa trên các yếu tố này, hệ thống sẽ có thể xác định xem bạn có phải là bot hay không.
Nếu không làm như vậy sẽ trở lại bất kỳ phương pháp nào trong hai phương pháp đã đề cập trước đó.
CAPTCHA có thể được kích hoạt nếu một trang web phát hiện các hoạt động bất thường giống với hành vi của bot; Hành vi bất thường như vậy bao gồm các yêu cầu không giới hạn trong vòng vài giây và nhấp vào các liên kết với tỷ lệ cao hơn nhiều so với con người.
Sau đó, một số trang web sẽ tự động có CAPTCHA tại chỗ để bảo vệ hệ thống của họ.
Theo như ReCAPTCHA có liên quan, không rõ chính xác điều gì kích hoạt chúng. Tuy nhiên, nguyên nhân chung là chuyển động chuột, lịch sử duyệt web và theo dõi cookie.
Bây giờ bạn đã có một cái nhìn tổng quan rõ ràng về CAPTCHA và Rechaptcha là gì, cách chúng hoạt động và điều gì kích hoạt chúng. Bây giờ là lúc để xem xét CAPTCHA ảnh hưởng đến việc quét web như thế nào.
CAPTCHA có thể cản trở việc quét web vì các bot tự động thực hiện hầu hết các hoạt động cạo. Tuy nhiên, đừng nản lòng. Như đã đề cập ở đầu bài viết này, có nhiều cách để vượt qua CAPTCHA khi quét web. Trước khi chúng tôi đến với họ, chúng ta hãy đi sâu vào sự chú ý của chúng tôi đến những gì bạn cần biết trước khi bạn cạo.
Khi bạn kết nối với một trang web, bạn gửi thông tin về thiết bị của mình đến trang web kết nối. Họ có thể sử dụng thông tin này để tùy chỉnh nội dung theo thông số kỹ thuật của thiết bị và theo dõi số liệu của bạn. Vì vậy, khi họ phát hiện ra rằng các yêu cầu đến từ cùng một thiết bị, bất kỳ yêu cầu nào bạn gửi sau đó sẽ bị chặn.
Một thực tế khác bạn nên biết là trang web mục tiêu chưa đưa địa chỉ IP của bạn vào danh sách đen. Họ có khả năng đưa địa chỉ IP của bạn vào danh sách đen khi bạn gửi quá nhiều yêu cầu bằng trình cạp/trình thu thập thông tin của mình.
Xoay các tiêu đề HTTP và proxy (nhiều hơn về điều này trong phần tiếp theo) với một nhóm sẽ đảm bảo rằng nhiều thiết bị truy cập trang web từ các vị trí khác nhau. Vì vậy, bạn sẽ có thể tiếp tục cạo mà không bị gián đoạn từ CAPTCHA. Phải nói rằng bạn phải đảm bảo rằng bạn không làm tổn hại đến hiệu suất của trang web bằng bất kỳ phương tiện nào.
Ngoài các yếu tố chính trên, bạn cần biết các CAPTCHA dưới đây khi quét web bằng bot:
Chỉ thay đổi tác nhân người dùng sẽ không đủ vì bạn sẽ cần phải có một danh sách các chuỗi tác nhân người dùng và sau đó xoay vòng chúng. Việc xoay vòng này sẽ dẫn đến việc trang web mục tiêu xem bạn như một thiết bị khác trong khi thực tế, một thiết bị đang gửi tất cả các yêu cầu.
Như một thực tiễn tốt nhất cho bước này, sẽ rất tuyệt nếu giữ một cơ sở dữ liệu về các tác nhân người dùng thực. Ngoài ra, hãy xóa cookie khi bạn không còn cần chúng nữa.
Một phương pháp kỹ thuật thấp đơn giản hơn để giải CAPTCHA sẽ là sử dụng dịch vụ giải CAPTCHA. Họ sử dụng Trí tuệ nhân tạo (AI), Học máy (MI) và đỉnh cao của các công nghệ khác để giải CAPTCHA.
Khi bạn để scraper của mình truy cập trực tiếp vào URL cứ sau mỗi giây, thì trang web nhận sẽ đáng ngờ. Kết quả là, trang web mục tiêu sẽ kích hoạt CAPTCHA.
Để tránh tình huống như vậy, bạn có thể đặt tiêu đề giới thiệu để làm cho nó có vẻ được giới thiệu từ một trang khác. Nó sẽ làm giảm khả năng bị phát hiện như một bot. Ngoài ra, bạn có thể làm cho bot truy cập các trang khác trước khi truy cập liên kết mong muốn.
Honeypots là các yếu tố ẩn trên một trang web mà các chuyên gia bảo mật sử dụng để bẫy bot hoặc kẻ xâm nhập. Mặc dù trình duyệt hiển thị HTML của nó, các thuộc tính CSS của nó được đặt để ẩn. Tuy nhiên, không giống như con người, mã nồi mật ong sẽ hiển thị cho các bot khi chúng cạo dữ liệu. Kết quả là họ rơi vào cái bẫy do nồi mật ong đặt ra.
Vì vậy, bạn phải chắc chắn rằng bạn kiểm tra các thuộc tính CSS của tất cả các phần tử trong một trang web không bị ẩn hoặc vô hình trước khi bạn bắt đầu cạo. Chỉ khi bạn chắc chắn rằng không có yếu tố nào bị ẩn, bạn mới đặt bot của mình để cạo.
Bài viết này sẽ cung cấp cho bạn một ý tưởng toàn diện về cách tránh CAPTCHA trong khi quét web. Tránh CAPTCHA có thể là một quá trình phức tạp. Tuy nhiên, với việc sử dụng các kỹ thuật cụ thể được thảo luận trong bài viết này, bạn có thể phát triển bot theo cách để tránh CAPTCHA.
Chúng tôi hy vọng bạn sẽ sử dụng tất cả các kỹ thuật được thảo luận trong bài viết này.