Giới thiệu
Mỗi tin nhắn của ChatGPT kích hoạt một chương trình Turnstile của Cloudflare chạy âm thầm trong trình duyệt của bạn. Tôi đã giải mã 377 chương trình này từ lưu lượng mạng và phát hiện điều gì đó vượt xa việc lấy dấu vân tay trình duyệt thông thường.
Tính năng chính
Chương trình kiểm tra 55 thuộc tính trên ba lớp: trình duyệt của bạn (GPU, màn hình, font), mạng Cloudflare (thành phố, IP, vùng từ tiêu đề mạng), và ứng dụng React của ChatGPT (__reactRouterContext, loaderData, clientBootstrap).
Lớp 1: Dấu vân tay trình duyệt
- WebGL:
UNMASKED_VENDOR_WEBGL,UNMASKED_RENDERER_WEBGL,WEBGL_debug_renderer_info, … - Màn hình:
colorDepth,pixelDepth,width,height, … - Thiết bị:
hardwareConcurrency,deviceMemory,maxTouchPoints, … - Font: Tạo div ẩn, đặt font, đo kích thước văn bản, …
- DOM: Tạo và xoá phần tử DOM, điều chỉnh kiểu dáng, …
Lớp 2: Mạng Cloudflare
- Tiêu đề mạng:
cfIpCity,cfIpLatitude,cfIpLongitude, …
Lớp 3: Trạng thái ứng dụng
- Nội bộ React:
__reactRouterContext,loaderData,clientBootstrap
Cách sử dụng
Chương trình thu thập và mã hóa các thuộc tính, sử dụng chúng để xây dựng một mã thông báo được gửi kèm với mỗi yêu cầu trò chuyện. Điều này nhằm bảo vệ chống lại bot bằng cách xác thực trên cả lớp trình duyệt và ứng dụng.
Chú ý của lập trình viên
Dev nên lưu ý rằng đây là một hình thức bảo vệ phát hiện bot ở lớp ứng dụng, không chỉ lớp trình duyệt. Điều này yêu cầu ứng dụng React phải được tải và hoạt động đầy đủ.