Tự động hóa ChatGPT và Claude thông qua giao diện web: cơ chế hoạt động của tính năng bảo vệ chống bot và trình duyệt chống phát hiện

Tự động hóa ChatGPT và Claude thông qua giao diện web: cơ chế hoạt động của tính năng bảo vệ chống bot và trình duyệt chống phát hiện
Markus_automation
Markus_automation

Expert in data parsing and automation

AI hiện đang trải qua giai đoạn được áp dụng hàng loạt tương tự như sự xuất hiện của công nghệ di động vào những năm 2000, chỉ có điều với tốc độ nhanh hơn nhiều. Khả năng nhận câu trả lời, tạo nội dung và ủy thác công việc trong vài giây đang đẩy nhanh việc áp dụng các mô hình ngôn ngữ lớn (LLM) ở cả người dùng cá nhân lẫn doanh nghiệp.

Có hai cách để làm việc với các mô hình này: thông qua giao diện web hoặc thông qua API. Các phiên bản web cung cấp hạn mức sử dụng miễn phí và các gói đăng ký thuê bao cố định, trong khi việc sử dụng API được tính phí theo số lượng token đã tiêu thụ. Với khối lượng tạo nội dung lớn, xử lý các tập dữ liệu khổng lồ hoặc vận hành các tác tử tự động, hóa đơn API có thể nhanh chóng tăng lên đáng kể.

Điều đó làm cho việc tự động hóa giao diện web bằng gói thuê bao người dùng thông thường trở nên hấp dẫn về mặt tài chính. Tuy nhiên, các nhà phát triển LLM hạn chế loại hình tự động hóa này bằng các hệ thống chống bot, từ Cloudflare Turnstile đến việc phân tích môi trường trình duyệt và hành vi người dùng.

Hãy cùng xem cách thức bảo vệ này hoạt động như thế nào và những gì cần thiết để tự động hóa các tương tác với giao diện web của ChatGPT và Claude.

Nội dung

Duy trì danh tính ẩn trực tuyến của bạn với Octo Browser. Dấu vân tay số thật của bạn sẽ không thể bị truy vết.

Bạn có muốn thử trải nghiệm Octo Browser với giá ưu đãi không?
Sử dụng mã khuyến mại OCTOBLOG để được giảm giá 30% cho bất kỳ gói đăng ký nào. Ưu đãi này chỉ dành riêng cho người dùng mới.

Tại sao lại tự động hóa giao diện web khi đã có API?

OpenAI và Anthropic cung cấp các API chính thức kèm tài liệu chi tiết. Vậy tại sao lại phải xây dựng cơ sở hạ tầng phức tạp và đối mặt với các bước kiểm tra bảo mật? Có ba lý do.

  1. Tiết kiệm chi phí theo quy mô. Với một API, bạn phải trả tiền cho từng phần văn bản được xử lý. Khi tạo nội dung hàng loạt, dịch các cơ sở dữ liệu lớn hoặc chạy các tác nhân (agents), hóa đơn có thể lên tới hàng nghìn đô la. Gói đăng ký ChatGPT Plus và Claude Pro có giá 20 USD mỗi tháng; các gói cấp cao hơn có giá 200 USD cho ChatGPT Pro và từ 100 USD cho Claude Max. Ngay cả khi có giới hạn tin nhắn, việc sử dụng trang web vẫn có thể rẻ hơn nhiều lần.

  2. Các tính năng không khả dụng qua API. Các trang web AI là sản phẩm chủ lực của họ. Tìm kiếm web, thực thi mã cũng như một số mô hình và công cụ nhất định không khả dụng qua API hoặc xuất hiện muộn hơn hay kèm theo các hạn chế.

  3. Các API không chính thức. Phần lớn thị trường xám bao gồm các API không chính thức được xây dựng trên các trang web AI. Các nhà phát triển chạy hàng trăm phiên trình duyệt, biến trang web thành một REST API quen thuộc và bán quyền truy cập với giá chỉ bằng một phần mười so với các gói chính thức. Ví dụ: đây là cách hoạt động của nhiều bot Telegram cung cấp quyền truy cập vào các mô hình AI mà không cần VPN.

Một kịch bản điển hình: bạn có một bảng tính với hàng nghìn hàng và mỗi hàng đều cần phản hồi từ mô hình. Thực hiện điều này theo cách thủ công là không thực tế nếu không muốn nói là bất khả thi, còn sử dụng API thì quá đắt hoặc mô hình bạn cần đơn giản là không có sẵn. Đó là lúc việc tự động hóa trang web bắt đầu trở nên đáng giá.

Tại sao không sử dụng Selenium hoặc Puppeteer và viết một tập lệnh đơn giản? Vấn đề là các công ty AI cũng phải kiểm soát chi phí của họ. Họ không chỉ muốn bán các gói đăng ký mà còn muốn chuyển khách hàng doanh nghiệp sang các API trả phí. Do đó, các trang web AI có biện pháp bảo vệ mạnh mẽ và một tập lệnh đơn giản chạy trong trình duyệt không giao diện (headless) sẽ không hoàn thành được công việc. Trên thực tế, những tập lệnh như vậy hiện nay đang gặp nhiều khó khăn trên nhiều trang web.

Tại sao các công cụ tự động hóa tiêu chuẩn không hoạt động

Trước khi thảo luận về giải pháp, hãy cùng xem xét vấn đề. Điều gì sẽ xảy ra nếu bạn truy cập trực tiếp vào trang web ChatGPT hoặc Claude bằng một tập lệnh đơn giản?

Các biện pháp bảo vệ hiện đại vượt xa việc chỉ chặn địa chỉ IP. Hệ thống sẽ kiểm tra các yêu cầu ở nhiều lớp và ngăn chặn việc tự động hóa trong ba trường hợp chính.

Lớp 1. Kết nối: các tập lệnh không có trình duyệt (requests, axios)

Về lý thuyết, một yêu cầu từ một tập lệnh thông thường sẽ bị từ chối—với lỗi 403 hoặc 429—ngay cả trước khi quá trình trao đổi dữ liệu bắt đầu. Hệ thống bảo mật sẽ xem xét cách máy khách thiết lập kết nối an toàn, tức là vân tay TLS của nó. Mỗi trình duyệt đều có một chữ ký nhận dạng riêng: tập hợp và thứ tự của các tham số được gửi đến máy chủ trong gói tin đầu tiên (Client Hello). Đây là cơ sở của các vân tay JA3 và JA4. Các thư viện mạng như OpenSSL hoặc urllib có chữ ký khác. Nếu một tập lệnh tự xưng là Chrome dành cho máy tính để bàn nhưng lại thiết lập kết nối giống như một thư viện, máy chủ sẽ phát hiện sự không khớp và có thể chấm dứt kết nối.

Trong thực tế, biện pháp bảo vệ này tinh vi hơn. Nếu địa chỉ IP không nằm trong danh sách chặn, máy chủ có thể trả về 200 OK nhưng lại hiển thị một trang trống hoặc trang Thử thách Cloudflare thay vì trang web hoạt động bình thường. Để tiếp tục, tập lệnh cần chạy một mã JavaScript đã được làm rối (obfuscated). Một tập lệnh không có trình duyệt sẽ không có công cụ JS, vì vậy nó sẽ dừng lại ở đó.

Connection: scripts without a browser (requests, axios)

Ví dụ về một tập lệnh đơn giản đang hoạt động

Lớp 2. Trình duyệt: Puppeteer hoặc Selenium chưa qua sửa đổi

Vì cần phải thực thi JavaScript, bước hợp lý tiếp theo là sử dụng trình duyệt không giao diện, tức là trình duyệt không có giao diện người dùng. Nó có thể thiết lập kết nối, tải trang và thực thi các tập lệnh, nhưng lại bị mắc kẹt ở bước kiểm tra Cloudflare Turnstile vô hình. Nhìn từ bên ngoài, điều này trông giống như trang “Chờ một chút…” hoặc một hộp kiểm xoay liên tục không ngừng.

Nhìn vào các yêu cầu mạng, bạn có thể thấy trình duyệt gửi dữ liệu đo từ xa đến các điểm cuối của nền tảng thử thách và nhận phản hồi, nhưng hệ thống liên tục không cấp mã cookie cf_clearance cho phép truy cập vào trang web.

Vấn đề không nằm ở cách tập lệnh nhấp chuột—chúng ta thậm chí còn chưa đến giai đoạn nhấp chuột. Chính bản thân trình duyệt đã làm lộ các dấu hiệu tự động hóa cho hệ thống bảo mật:

  • Cờ tự động hóa. Trình duyệt được điều khiển bởi tập lệnh sẽ tự đánh dấu bằng thuộc tính navigator.webdriver = true. Selenium hoạt động thông qua WebDriver, trong khi Puppeteer sử dụng giao thức CDP, nhưng cả hai đều khởi chạy trình duyệt với cờ này được bật. Các hệ thống bảo mật có thể dễ dàng phát hiện ra nó, ngay cả khi bạn cố gắng ẩn nó bằng các đoạn mã JavaScript đơn giản.

  • Đồ họa không có GPU (WebGL/Canvas). Máy chủ hoặc vùng chứa Docker không có GPU, do đó trình duyệt hiển thị đồ họa bằng CPU. Hệ thống bảo mật yêu cầu thông tin về cấu hình đồ họa và thấy quá trình kết xuất phần mềm điển hình phía máy chủ trong WebGL Renderer—ANGLE chạy trên SwiftShader. Nó cũng âm thầm vẽ một hình ảnh trong phần tử Canvas ẩn và so sánh hàm băm của nó với giá trị dự kiến.

Khi hệ thống phát hiện cờ tự động hóa và việc kết xuất đồ họa không có GPU, nó sẽ nhận ra rằng nó đang xử lý một bot phía máy chủ.

Browser: Puppeteer or Selenium without modifications

Bạn không bị chặn ngay lập tức; thay vào đó, bạn bị đưa qua các bước kiểm tra bất tận và không bao giờ có được quyền truy cập vào mô hình AI.

Lớp 3. Hành vi: phản hồi bị ngắt quãng

Khó khăn chính tiếp theo mới xuất hiện. Phản hồi của mô hình đến theo từng phần qua một kết nối liên tục đến máy chủ—Server-Sent Events (SSE) hoặc WebSocket. Hệ thống tiếp tục đánh giá phiên trong suốt quá trình này.

Nếu nó nhận thấy con trỏ nhảy ngay lập tức đến các nút cần thiết thay vì di chuyển mượt mà, với gia tốc và độ rung nhẹ như con trỏ của con người, phản hồi có thể bị ngắt trong quá trình tạo. Trong trường hợp của WebSocket, kết nối sẽ đóng với mã 1006, Đóng bất thường (Abnormal Closure). Chuyển động của con trỏ chỉ là một ví dụ: các hệ thống bảo mật còn phân tích nhiều tín hiệu khác nữa.

Trong trường hợp xấu nhất, tài khoản sẽ bị cấm ngầm (shadowban). Bạn vẫn duy trì trạng thái đăng nhập và tập lệnh gửi các yêu cầu POST chứa lời nhắc, nhưng phản hồi là một đối tượng JSON trống hoặc thông báo “lỗi tạo tạm thời”.

Ngõ cụt của các giải pháp tiêu chuẩn

Kết hợp cả ba lớp lại với nhau, bức tranh đã rõ ràng: các ứng dụng khách HTTP là vô dụng nếu không có công cụ JS, trong khi các công cụ tự động hóa tiêu chuẩn lại tự để lộ qua cờ navigator.webdriver, đồ họa được kết xuất bằng phần mềm và các sự kiện đầu vào tổng hợp.

Bạn có thể chọn con đường ít trở ngại nhất: vá Selenium hoặc Puppeteer bằng một vài đoạn mã JavaScript và thêm một dịch vụ giải CAPTCHA. Chỉ cần đảm bảo có ngân sách cho nó, vì bạn sẽ gặp rất nhiều CAPTCHA, và điều này vẫn không làm cho hệ thống hoạt động ổn định.

Có một cách tiếp cận khác: xây dựng một hệ thống bền bỉ để làm việc với các giao diện web của LLM. Hệ thống cần cung cấp ba điều:

  1. Một môi trường trình duyệt hoàn chỉnh. Một công cụ trình duyệt thực sự thực hiện các kiểm tra đã được làm rối giống như Chrome thông thường.

  2. Khả năng kiểm soát không thể bị phát hiện. Giao thức điều khiển không được để lại dấu vết trong đối tượng window—không có cờ tự động hóa hoặc biến WebDriver.

  3. Tính nhất quán với phần cứng. Hàm băm Canvas và WebGL, bộ phông chữ và các tham số khác phải khớp với GPU và hệ điều hành đã khai báo thay vì để lộ một máy chủ ảo.

Làm thế nào bạn có thể đáp ứng các yêu cầu này mà không cần tự mình viết lại công cụ Chromium?

Trình duyệt chống phát hiện làm nền tảng cho việc thiết lập tự động hóa

Giải pháp đến từ thế giới tiếp thị liên kết (affiliate marketing) và quản lý nhiều tài khoản: trình duyệt chống phát hiện, trong trường hợp này là Octo Browser. Điểm khác biệt chính của chúng so với Puppeteer đã vá lỗi là cấp độ giả mạo các vân tay. Điều này không xảy ra thông qua các tập lệnh JavaScript, mà nằm trong mã nguồn của công cụ Chromium.

Điều quan trọng cần hiểu là Puppeteer cũng sử dụng giao thức CDP, do đó sự khác biệt không nằm ở phương thức điều khiển. Sự khác biệt nằm ở trình duyệt mà tập lệnh kết nối tới. Những vân tay mà nó sử dụng và liệu nó có chứa các dấu hiệu tự động hóa hay không mới là điều quan trọng.

Điều này mang lại những gì trong thực tế?

  • Các tham số GPU hợp lý. Thay vì kết xuất phần mềm thông qua SwiftShader, trình duyệt sẽ đưa ra các tham số tương ứng với phần cứng thực—Nvidia, AMD hoặc Apple Silicon. Các hàm băm Canvas và WebGL nhất quán với GPU đã khai báo.

  • Cách ly hồ sơ. Mỗi tài khoản ChatGPT hoặc Claude chạy trong một hồ sơ được mã hóa riêng biệt. Mỗi hồ sơ có phông chữ, cài đặt WebRTC và múi giờ riêng.

  • Kiểm soát thông qua một API cục bộ và CDP. Không cần sử dụng mã để cấu hình môi trường. Các hồ sơ được khởi chạy thông qua REST API cục bộ của trình duyệt và tập lệnh kết nối với chúng qua cổng CDP.

Trong thiết lập này, một tập lệnh Python hoặc Node.js chỉ xử lý phần logic. Nó lấy dữ liệu nguồn, tạo lời nhắc, gửi đến giao diện web AI đang chạy trong trình duyệt chống phát hiện và nhận kết quả. Môi trường đã được chuẩn bị sẵn sàng có trách nhiệm đáp ứng các yêu cầu của hệ thống chống gian lận.

Kiến trúc giải pháp: các hồ sơ đã lưu và kết nối CDP

Cuối cùng, việc làm việc với giao diện web AI sẽ trở thành một quy trình ổn định, trong đó trình duyệt chống phát hiện phục vụ hai vai trò.

  • Môi trường thiết lập ban đầu. Bạn mở giao diện một lần trong cửa sổ hồ sơ thông thường và sử dụng như người dùng bình thường: đăng nhập thủ công và hoàn thành CAPTCHA nếu xuất hiện. Trình duyệt sẽ lưu cookie, bộ nhớ đệm và các mã xác thực trong một hồ sơ riêng biệt. Đối với máy chủ, điều này trông giống như một người bình thường vừa đóng một tab.

  • Một nút cơ sở hạ tầng. Khi bạn cần chạy tự động hóa, tập lệnh sẽ khởi chạy hồ sơ đã chuẩn bị sẵn thông qua API cục bộ và kết nối với hồ sơ đó qua CDP.

Hồ sơ đã được xác thực, vì vậy việc điều hướng đến chatgpt.com hoặc claude.ai sẽ mở giao diện trò chuyện ngay lập tức. Không cần đăng nhập lại hoặc giải CAPTCHA: đối với Cloudflare, đây là sự tiếp tục của một phiên đã được xác minh trước đó trên một thiết bị đáng tin cậy. Bạn có thể có nhiều hồ sơ như vậy.

Các vai trò trong hệ thống này được phân chia như sau: trình duyệt chống phát hiện sẽ giả mạo các tham số phần cứng ở cấp độ nhân, kết nối proxy và lưu trữ cookie; tập lệnh gửi lời nhắc và nhận phản hồi; và CDP kết nối cả hai. Về cơ bản, trình duyệt được sử dụng đúng mục đích đã định, ngoại trừ việc mã sẽ điều khiển nó thay vì con người.

Kết luận

Các giao diện web của LLM kiểm tra máy khách ở ba cấp độ: cách họ thiết lập kết nối, môi trường họ đang chạy và hành vi của họ trong một phiên. Đó là lý do tại sao các bản sửa lỗi riêng lẻ như tiện ích mở rộng ẩn danh, các bản vá JavaScript hoặc việc thay đổi proxy cùng lắm chỉ mang lại kết quả tạm thời. Chúng giải quyết được một vấn đề trong khi vẫn để lộ các vấn đề khác.

Tự động hóa kiên cố bắt đầu từ môi trường, không phải từ tập lệnh. Một trình duyệt có các vân tay nhất quán ở cấp độ nhân, các hồ sơ được cấu hình sẵn và khả năng kiểm soát CDP sẽ giải phóng gánh nặng giả mạo khỏi mã code. Tập lệnh chỉ còn phải làm công việc thực tế của nó: gửi lời nhắc và xử lý phản hồi.

Đồng thời, các rủi ro của kiến trúc này cũng cần được đánh giá một cách thực tế. Các hệ thống bảo vệ tiếp tục phát triển và việc truy cập tự động vào các giao diện web xung đột với các điều khoản của OpenAI và Anthropic. Bất kỳ thiết lập nào như vậy đều yêu cầu bảo trì và điều quan trọng là phải hiểu cách hoạt động của cơ chế bảo vệ mà bạn đang đối phó.

Duy trì danh tính ẩn trực tuyến của bạn với Octo Browser. Dấu vân tay số thật của bạn sẽ không thể bị truy vết.

Bạn có muốn thử trải nghiệm Octo Browser với giá ưu đãi không?
Sử dụng mã khuyến mại OCTOBLOG để được giảm giá 30% cho bất kỳ gói đăng ký nào. Ưu đãi này chỉ dành riêng cho người dùng mới.

Tại sao lại tự động hóa giao diện web khi đã có API?

OpenAI và Anthropic cung cấp các API chính thức kèm tài liệu chi tiết. Vậy tại sao lại phải xây dựng cơ sở hạ tầng phức tạp và đối mặt với các bước kiểm tra bảo mật? Có ba lý do.

  1. Tiết kiệm chi phí theo quy mô. Với một API, bạn phải trả tiền cho từng phần văn bản được xử lý. Khi tạo nội dung hàng loạt, dịch các cơ sở dữ liệu lớn hoặc chạy các tác nhân (agents), hóa đơn có thể lên tới hàng nghìn đô la. Gói đăng ký ChatGPT Plus và Claude Pro có giá 20 USD mỗi tháng; các gói cấp cao hơn có giá 200 USD cho ChatGPT Pro và từ 100 USD cho Claude Max. Ngay cả khi có giới hạn tin nhắn, việc sử dụng trang web vẫn có thể rẻ hơn nhiều lần.

  2. Các tính năng không khả dụng qua API. Các trang web AI là sản phẩm chủ lực của họ. Tìm kiếm web, thực thi mã cũng như một số mô hình và công cụ nhất định không khả dụng qua API hoặc xuất hiện muộn hơn hay kèm theo các hạn chế.

  3. Các API không chính thức. Phần lớn thị trường xám bao gồm các API không chính thức được xây dựng trên các trang web AI. Các nhà phát triển chạy hàng trăm phiên trình duyệt, biến trang web thành một REST API quen thuộc và bán quyền truy cập với giá chỉ bằng một phần mười so với các gói chính thức. Ví dụ: đây là cách hoạt động của nhiều bot Telegram cung cấp quyền truy cập vào các mô hình AI mà không cần VPN.

Một kịch bản điển hình: bạn có một bảng tính với hàng nghìn hàng và mỗi hàng đều cần phản hồi từ mô hình. Thực hiện điều này theo cách thủ công là không thực tế nếu không muốn nói là bất khả thi, còn sử dụng API thì quá đắt hoặc mô hình bạn cần đơn giản là không có sẵn. Đó là lúc việc tự động hóa trang web bắt đầu trở nên đáng giá.

Tại sao không sử dụng Selenium hoặc Puppeteer và viết một tập lệnh đơn giản? Vấn đề là các công ty AI cũng phải kiểm soát chi phí của họ. Họ không chỉ muốn bán các gói đăng ký mà còn muốn chuyển khách hàng doanh nghiệp sang các API trả phí. Do đó, các trang web AI có biện pháp bảo vệ mạnh mẽ và một tập lệnh đơn giản chạy trong trình duyệt không giao diện (headless) sẽ không hoàn thành được công việc. Trên thực tế, những tập lệnh như vậy hiện nay đang gặp nhiều khó khăn trên nhiều trang web.

Tại sao các công cụ tự động hóa tiêu chuẩn không hoạt động

Trước khi thảo luận về giải pháp, hãy cùng xem xét vấn đề. Điều gì sẽ xảy ra nếu bạn truy cập trực tiếp vào trang web ChatGPT hoặc Claude bằng một tập lệnh đơn giản?

Các biện pháp bảo vệ hiện đại vượt xa việc chỉ chặn địa chỉ IP. Hệ thống sẽ kiểm tra các yêu cầu ở nhiều lớp và ngăn chặn việc tự động hóa trong ba trường hợp chính.

Lớp 1. Kết nối: các tập lệnh không có trình duyệt (requests, axios)

Về lý thuyết, một yêu cầu từ một tập lệnh thông thường sẽ bị từ chối—với lỗi 403 hoặc 429—ngay cả trước khi quá trình trao đổi dữ liệu bắt đầu. Hệ thống bảo mật sẽ xem xét cách máy khách thiết lập kết nối an toàn, tức là vân tay TLS của nó. Mỗi trình duyệt đều có một chữ ký nhận dạng riêng: tập hợp và thứ tự của các tham số được gửi đến máy chủ trong gói tin đầu tiên (Client Hello). Đây là cơ sở của các vân tay JA3 và JA4. Các thư viện mạng như OpenSSL hoặc urllib có chữ ký khác. Nếu một tập lệnh tự xưng là Chrome dành cho máy tính để bàn nhưng lại thiết lập kết nối giống như một thư viện, máy chủ sẽ phát hiện sự không khớp và có thể chấm dứt kết nối.

Trong thực tế, biện pháp bảo vệ này tinh vi hơn. Nếu địa chỉ IP không nằm trong danh sách chặn, máy chủ có thể trả về 200 OK nhưng lại hiển thị một trang trống hoặc trang Thử thách Cloudflare thay vì trang web hoạt động bình thường. Để tiếp tục, tập lệnh cần chạy một mã JavaScript đã được làm rối (obfuscated). Một tập lệnh không có trình duyệt sẽ không có công cụ JS, vì vậy nó sẽ dừng lại ở đó.

Connection: scripts without a browser (requests, axios)

Ví dụ về một tập lệnh đơn giản đang hoạt động

Lớp 2. Trình duyệt: Puppeteer hoặc Selenium chưa qua sửa đổi

Vì cần phải thực thi JavaScript, bước hợp lý tiếp theo là sử dụng trình duyệt không giao diện, tức là trình duyệt không có giao diện người dùng. Nó có thể thiết lập kết nối, tải trang và thực thi các tập lệnh, nhưng lại bị mắc kẹt ở bước kiểm tra Cloudflare Turnstile vô hình. Nhìn từ bên ngoài, điều này trông giống như trang “Chờ một chút…” hoặc một hộp kiểm xoay liên tục không ngừng.

Nhìn vào các yêu cầu mạng, bạn có thể thấy trình duyệt gửi dữ liệu đo từ xa đến các điểm cuối của nền tảng thử thách và nhận phản hồi, nhưng hệ thống liên tục không cấp mã cookie cf_clearance cho phép truy cập vào trang web.

Vấn đề không nằm ở cách tập lệnh nhấp chuột—chúng ta thậm chí còn chưa đến giai đoạn nhấp chuột. Chính bản thân trình duyệt đã làm lộ các dấu hiệu tự động hóa cho hệ thống bảo mật:

  • Cờ tự động hóa. Trình duyệt được điều khiển bởi tập lệnh sẽ tự đánh dấu bằng thuộc tính navigator.webdriver = true. Selenium hoạt động thông qua WebDriver, trong khi Puppeteer sử dụng giao thức CDP, nhưng cả hai đều khởi chạy trình duyệt với cờ này được bật. Các hệ thống bảo mật có thể dễ dàng phát hiện ra nó, ngay cả khi bạn cố gắng ẩn nó bằng các đoạn mã JavaScript đơn giản.

  • Đồ họa không có GPU (WebGL/Canvas). Máy chủ hoặc vùng chứa Docker không có GPU, do đó trình duyệt hiển thị đồ họa bằng CPU. Hệ thống bảo mật yêu cầu thông tin về cấu hình đồ họa và thấy quá trình kết xuất phần mềm điển hình phía máy chủ trong WebGL Renderer—ANGLE chạy trên SwiftShader. Nó cũng âm thầm vẽ một hình ảnh trong phần tử Canvas ẩn và so sánh hàm băm của nó với giá trị dự kiến.

Khi hệ thống phát hiện cờ tự động hóa và việc kết xuất đồ họa không có GPU, nó sẽ nhận ra rằng nó đang xử lý một bot phía máy chủ.

Browser: Puppeteer or Selenium without modifications

Bạn không bị chặn ngay lập tức; thay vào đó, bạn bị đưa qua các bước kiểm tra bất tận và không bao giờ có được quyền truy cập vào mô hình AI.

Lớp 3. Hành vi: phản hồi bị ngắt quãng

Khó khăn chính tiếp theo mới xuất hiện. Phản hồi của mô hình đến theo từng phần qua một kết nối liên tục đến máy chủ—Server-Sent Events (SSE) hoặc WebSocket. Hệ thống tiếp tục đánh giá phiên trong suốt quá trình này.

Nếu nó nhận thấy con trỏ nhảy ngay lập tức đến các nút cần thiết thay vì di chuyển mượt mà, với gia tốc và độ rung nhẹ như con trỏ của con người, phản hồi có thể bị ngắt trong quá trình tạo. Trong trường hợp của WebSocket, kết nối sẽ đóng với mã 1006, Đóng bất thường (Abnormal Closure). Chuyển động của con trỏ chỉ là một ví dụ: các hệ thống bảo mật còn phân tích nhiều tín hiệu khác nữa.

Trong trường hợp xấu nhất, tài khoản sẽ bị cấm ngầm (shadowban). Bạn vẫn duy trì trạng thái đăng nhập và tập lệnh gửi các yêu cầu POST chứa lời nhắc, nhưng phản hồi là một đối tượng JSON trống hoặc thông báo “lỗi tạo tạm thời”.

Ngõ cụt của các giải pháp tiêu chuẩn

Kết hợp cả ba lớp lại với nhau, bức tranh đã rõ ràng: các ứng dụng khách HTTP là vô dụng nếu không có công cụ JS, trong khi các công cụ tự động hóa tiêu chuẩn lại tự để lộ qua cờ navigator.webdriver, đồ họa được kết xuất bằng phần mềm và các sự kiện đầu vào tổng hợp.

Bạn có thể chọn con đường ít trở ngại nhất: vá Selenium hoặc Puppeteer bằng một vài đoạn mã JavaScript và thêm một dịch vụ giải CAPTCHA. Chỉ cần đảm bảo có ngân sách cho nó, vì bạn sẽ gặp rất nhiều CAPTCHA, và điều này vẫn không làm cho hệ thống hoạt động ổn định.

Có một cách tiếp cận khác: xây dựng một hệ thống bền bỉ để làm việc với các giao diện web của LLM. Hệ thống cần cung cấp ba điều:

  1. Một môi trường trình duyệt hoàn chỉnh. Một công cụ trình duyệt thực sự thực hiện các kiểm tra đã được làm rối giống như Chrome thông thường.

  2. Khả năng kiểm soát không thể bị phát hiện. Giao thức điều khiển không được để lại dấu vết trong đối tượng window—không có cờ tự động hóa hoặc biến WebDriver.

  3. Tính nhất quán với phần cứng. Hàm băm Canvas và WebGL, bộ phông chữ và các tham số khác phải khớp với GPU và hệ điều hành đã khai báo thay vì để lộ một máy chủ ảo.

Làm thế nào bạn có thể đáp ứng các yêu cầu này mà không cần tự mình viết lại công cụ Chromium?

Trình duyệt chống phát hiện làm nền tảng cho việc thiết lập tự động hóa

Giải pháp đến từ thế giới tiếp thị liên kết (affiliate marketing) và quản lý nhiều tài khoản: trình duyệt chống phát hiện, trong trường hợp này là Octo Browser. Điểm khác biệt chính của chúng so với Puppeteer đã vá lỗi là cấp độ giả mạo các vân tay. Điều này không xảy ra thông qua các tập lệnh JavaScript, mà nằm trong mã nguồn của công cụ Chromium.

Điều quan trọng cần hiểu là Puppeteer cũng sử dụng giao thức CDP, do đó sự khác biệt không nằm ở phương thức điều khiển. Sự khác biệt nằm ở trình duyệt mà tập lệnh kết nối tới. Những vân tay mà nó sử dụng và liệu nó có chứa các dấu hiệu tự động hóa hay không mới là điều quan trọng.

Điều này mang lại những gì trong thực tế?

  • Các tham số GPU hợp lý. Thay vì kết xuất phần mềm thông qua SwiftShader, trình duyệt sẽ đưa ra các tham số tương ứng với phần cứng thực—Nvidia, AMD hoặc Apple Silicon. Các hàm băm Canvas và WebGL nhất quán với GPU đã khai báo.

  • Cách ly hồ sơ. Mỗi tài khoản ChatGPT hoặc Claude chạy trong một hồ sơ được mã hóa riêng biệt. Mỗi hồ sơ có phông chữ, cài đặt WebRTC và múi giờ riêng.

  • Kiểm soát thông qua một API cục bộ và CDP. Không cần sử dụng mã để cấu hình môi trường. Các hồ sơ được khởi chạy thông qua REST API cục bộ của trình duyệt và tập lệnh kết nối với chúng qua cổng CDP.

Trong thiết lập này, một tập lệnh Python hoặc Node.js chỉ xử lý phần logic. Nó lấy dữ liệu nguồn, tạo lời nhắc, gửi đến giao diện web AI đang chạy trong trình duyệt chống phát hiện và nhận kết quả. Môi trường đã được chuẩn bị sẵn sàng có trách nhiệm đáp ứng các yêu cầu của hệ thống chống gian lận.

Kiến trúc giải pháp: các hồ sơ đã lưu và kết nối CDP

Cuối cùng, việc làm việc với giao diện web AI sẽ trở thành một quy trình ổn định, trong đó trình duyệt chống phát hiện phục vụ hai vai trò.

  • Môi trường thiết lập ban đầu. Bạn mở giao diện một lần trong cửa sổ hồ sơ thông thường và sử dụng như người dùng bình thường: đăng nhập thủ công và hoàn thành CAPTCHA nếu xuất hiện. Trình duyệt sẽ lưu cookie, bộ nhớ đệm và các mã xác thực trong một hồ sơ riêng biệt. Đối với máy chủ, điều này trông giống như một người bình thường vừa đóng một tab.

  • Một nút cơ sở hạ tầng. Khi bạn cần chạy tự động hóa, tập lệnh sẽ khởi chạy hồ sơ đã chuẩn bị sẵn thông qua API cục bộ và kết nối với hồ sơ đó qua CDP.

Hồ sơ đã được xác thực, vì vậy việc điều hướng đến chatgpt.com hoặc claude.ai sẽ mở giao diện trò chuyện ngay lập tức. Không cần đăng nhập lại hoặc giải CAPTCHA: đối với Cloudflare, đây là sự tiếp tục của một phiên đã được xác minh trước đó trên một thiết bị đáng tin cậy. Bạn có thể có nhiều hồ sơ như vậy.

Các vai trò trong hệ thống này được phân chia như sau: trình duyệt chống phát hiện sẽ giả mạo các tham số phần cứng ở cấp độ nhân, kết nối proxy và lưu trữ cookie; tập lệnh gửi lời nhắc và nhận phản hồi; và CDP kết nối cả hai. Về cơ bản, trình duyệt được sử dụng đúng mục đích đã định, ngoại trừ việc mã sẽ điều khiển nó thay vì con người.

Kết luận

Các giao diện web của LLM kiểm tra máy khách ở ba cấp độ: cách họ thiết lập kết nối, môi trường họ đang chạy và hành vi của họ trong một phiên. Đó là lý do tại sao các bản sửa lỗi riêng lẻ như tiện ích mở rộng ẩn danh, các bản vá JavaScript hoặc việc thay đổi proxy cùng lắm chỉ mang lại kết quả tạm thời. Chúng giải quyết được một vấn đề trong khi vẫn để lộ các vấn đề khác.

Tự động hóa kiên cố bắt đầu từ môi trường, không phải từ tập lệnh. Một trình duyệt có các vân tay nhất quán ở cấp độ nhân, các hồ sơ được cấu hình sẵn và khả năng kiểm soát CDP sẽ giải phóng gánh nặng giả mạo khỏi mã code. Tập lệnh chỉ còn phải làm công việc thực tế của nó: gửi lời nhắc và xử lý phản hồi.

Đồng thời, các rủi ro của kiến trúc này cũng cần được đánh giá một cách thực tế. Các hệ thống bảo vệ tiếp tục phát triển và việc truy cập tự động vào các giao diện web xung đột với các điều khoản của OpenAI và Anthropic. Bất kỳ thiết lập nào như vậy đều yêu cầu bảo trì và điều quan trọng là phải hiểu cách hoạt động của cơ chế bảo vệ mà bạn đang đối phó.

Cập nhật với các tin tức Octo Browser mới nhất

Khi nhấp vào nút này, bạn sẽ đồng ý với Chính sách Quyền riêng tư của chúng tôi.

Cập nhật với các tin tức Octo Browser mới nhất

Khi nhấp vào nút này, bạn sẽ đồng ý với Chính sách Quyền riêng tư của chúng tôi.

Cập nhật với các tin tức Octo Browser mới nhất

Khi nhấp vào nút này, bạn sẽ đồng ý với Chính sách Quyền riêng tư của chúng tôi.

Tham gia Octo Browser ngay

Hoặc liên hệ với Dịch vụ khách hàng bất kì lúc nào nếu bạn có bất cứ thắc mắc nào.

Tham gia Octo Browser ngay

Hoặc liên hệ với Dịch vụ khách hàng bất kì lúc nào nếu bạn có bất cứ thắc mắc nào.

Tham gia Octo Browser ngay

Hoặc liên hệ với Dịch vụ khách hàng bất kì lúc nào nếu bạn có bất cứ thắc mắc nào.

©

2026

Octo Browser

©

2026

Octo Browser

©

2026

Octo Browser