Fingerprint ClientRects là gì? Hướng dẫn kiểm tra tính nhất quán môi trường đa tài khoản
Kết luận chính: ClientRects mà trang kiểm tra đọc là các hộp bố cục của phần tử trên trang web, một tập hợp chiều rộng, chiều cao và tọa độ có số thập phân. Khi số đo của hai môi trường không khớp, nguyên nhân thường nằm ở render phông chữ, tỷ lệ màn hình hoặc khác biệt hệ điều hành. Đây là một phần của tính nhất quán môi trường, không thể tắt riêng, cách xử lý là chọn chế độ trong cài đặt fingerprint kết hợp đo thử thực tế.
"Kiểm tra nhất quán đến tận lớp fingerprint thì số đo ClientRects của hai môi trường lại khác nhau." Hoặc ngược lại: trang kiểm tra đánh dấu mục này màu vàng, không biết có tính là vấn đề hay không. Điểm chung của những thắc mắc này là đã thấy tên tham số, nhưng nó đo cái gì, chỉnh rồi ảnh hưởng gì thì trong lòng không chắc.
Bài viết này trả lời bốn việc theo trình tự xử lý. Số đo này là gì, vì sao hai môi trường không khớp, nó nói lên điều gì trong tính nhất quán môi trường, và cách cấu hình, kiểm chứng trong trình duyệt anti-detect MostMate. MostMate chuẩn bị cho mỗi tài khoản một bộ môi trường trình duyệt cách ly với nhau, còn ClientRects là một mục trong cài đặt fingerprint.
Fingerprint ClientRects thực chất là gì
Trong một câu: fingerprint ClientRects đọc tọa độ chính xác của hộp các phần tử trên trang. Gọi getBoundingClientRect() sẽ nhận được chiều rộng, chiều cao và vị trí tương đối viewport của phần tử; tài liệu MDN định nghĩa là "trả về kích thước của phần tử và vị trí của nó tương đối với viewport"; phần tử inline xuống dòng dùng getClientRects() để đọc, mỗi dòng một hình chữ nhật.
Chìa khóa nằm ở dạng số liệu. Tọa độ không phải số nguyên. Là số thực với nhiều chữ số thập phân, ví dụ 147.359375. Website không cần bất kỳ quyền nào: một đoạn script tạo phần tử ẩn trong trang, điền văn bản cố định, đọc lại hình chữ nhật là có thể ghép ra chữ ký, toàn bộ quá trình hòa lẫn vào phép tính bố cục bình thường.
Người vận hành cần quan tâm vì ba lý do. Không thể tắt, vì tính toán bố cục là nền tảng để trang web hoạt động bình thường; ổn định giữa các phiên, số đo của cùng một thiết bị gần như không đổi; và giống như phông chữ, tham số màn hình, nó thuộc về phần khai báo môi trường, hệ thống rủi ro sẽ dùng để đối chiếu chéo.

Vì sao số đo của hai môi trường không khớp
Chiều rộng dòng chữ phụ thuộc cả pipeline từ chữ đến pixel cuối cùng:
- Công cụ dàn chữ: Windows, macOS, Linux mỗi hệ một bộ, cùng phông chữ, cùng chuỗi ký tự nhưng khoảng cách chữ tính ra khác nhau.
- Tỷ lệ màn hình: màn hình phân giải cao và tỷ lệ hệ điều hành thay đổi bước làm tròn, số thập phân đổi theo.
- Fallback phông chữ: phông chữ trang cần không có sẵn, chuyển sang phông dự phòng, chiều rộng đổi theo.
- Engine trình duyệt và thu phóng trang: nhân khác nhau thuật toán ngắt dòng khác nhau, thu phóng trang đi thẳng vào pipeline bố cục.
Những khác biệt này đều nhỏ, nhìn một con số không kết luận được gì. Kết hợp lại, chúng mô tả "thiết bị này chạy hệ điều hành gì, render stack nào". Nó là họ hàng gần với fingerprint phông chữ: liệt kê phông chữ hỏi thẳng danh sách, ClientRects đo kết quả render, hai bên có thể xác minh lẫn nhau. Các tham số kích thước cấp thiết bị, cấp cửa sổ đã viết trong bài về độ phân giải màn hình và kích thước cửa sổ, ClientRects là tín hiệu cấp phần tử sâu hơn một tầng.
Số đo này giữ vai trò gì trong tính nhất quán môi trường
Giá trị lớn nhất của nó là đối chiếu chéo: tìm cho phần khai báo môi trường một kết quả đo thực tế đối chiếu được. Môi trường khai báo là Windows, treo một nhóm phông chữ phổ biến, nhưng chiều rộng chữ đo ra lại mang kiểu làm tròn của hệ điều hành khác. Hai tín hiệu đánh nhau. Hệ thống rủi ro không cần hiểu nguyên lý, chỉ cần phát hiện mâu thuẫn.
Tính nhất quán của cấu hình đáng đối chiếu hơn độ hiếm của từng tham số riêng lẻ. Khi xử lý xem hai môi trường có bị kết luận là cùng một người hay không, số đo hình chữ nhật nên đặt cạnh hệ điều hành, danh sách phông chữ mà bảng fingerprint khai báo; logic của tự kiểm tra bốn chiều là cân bằng khai báo với thực đo.
Còn một công dụng thường bị bỏ qua: phát hiện thu phóng. Cách làm tròn của hình chữ nhật cho phép suy ngược mức thu phóng hiện tại của trang và cài đặt tỷ lệ hệ điều hành, những thông tin này lại là một nhóm tín hiệu có thể tra chéo với tham số màn hình thiết bị khai báo. Khi hành vi thu phóng giữa các môi trường chênh lệch lớn, số đo khác nhau là bình thường, hãy xác nhận trạng thái thu phóng trước khi kết luận.
Cấu hình thế nào trong MostMate
Trong biểu mẫu cài đặt fingerprint của MostMate, ClientRects chiếm một mục riêng, cạnh Canvas, AudioContext, SpeechVoices và WebGL image. Chỉ có hai chế độ: chế độ Real trả về dàn chữ thật của máy, chế độ Noise tức chế độ nhiễu.
Chọn chế độ theo kịch bản. Thỏa mãn hai điều kiện có thể chọn Real: cấu hình máy này chính là cấu hình phổ biến của nhóm đối tượng mục tiêu, ví dụ tổ hợp Windows với phông mặc định quen thuộc; trang nghiệp vụ đòi hỏi độ chính xác dàn chữ cao, không cho phép số liệu bố cục bị thay đổi. Cái giá của Real là đặc điểm render thật của máy bị lộ nguyên vẹn, nếu máy cài nhiều phông chữ lạ, độ nhận diện đặc điểm sẽ tăng theo.
Nhiều môi trường dùng chung một máy, chọn Noise. Số đo của các môi trường không còn trỏ về cùng một máy thật, đây là tình huống áp dụng chính của nó. Cái giá là phải chấp nhận một ràng buộc. Giữa các giá trị hình chữ nhật tồn tại quan hệ số học. Tọa độ hộp ngoài phải khớp với hình chữ nhật của chữ bên trong, chiều rộng của cùng chuỗi ký tự phải tương xứng theo tỷ lệ. Nhiễu nếu chỉ rơi vào một phần số đo, các quan hệ này bị phá vỡ, ngược lại tạo ra tín hiệu mâu thuẫn còn nổi bật hơn. Vì vậy chọn xong chế độ phải đo thử, chứ không phải cấu hình xong mặc định là ổn.
Sau khi chuyển sang chế độ Noise, mục ClientRects trong bảng xem trước fingerprint sẽ trở thành giá trị kèm mã sáu ký tự. Mã chỉ là định danh của cấu hình nhiễu, hash thật sự lộ ra phải mở môi trường chạy một lượt trang kiểm tra mới thấy được.

Kiểm chứng thế nào sau khi cấu hình
Kiểm chứng hai bước: số liệu đổi đúng kỳ vọng, rồi phải tự nhất quán.
Bước 1: đối chiếu số đo của hai môi trường. Tạo hai môi trường, một chọn Real, một chọn Noise, lần lượt mở trang kiểm tra Client Rects của BrowserLeaks. Trên cùng một máy, giá trị hình chữ nhật của môi trường Real phải nhất quán. Môi trường Noise phải khác Real, hai môi trường Noise cũng phải phân biệt được với nhau. Khi ghi chép, chú ý phần từ chữ số thập phân thứ ba trở đi, khác biệt thường bắt đầu từ đây. Ghi lại số đo của từng môi trường làm mốc cơ sở của môi trường đó.
Bước 2: đối chiếu tự nhất quán. Số liệu đổi chỉ là bước đầu:
- Đo lại ở phiên khác: giá trị của cùng một môi trường phải ổn định, số đo nhảy loạn chính bản thân nó đã là bất thường.
- Đối chiếu với hệ điều hành, danh sách phông chữ mà bảng fingerprint khai báo: phong cách render phải khớp được, không thể một tín hiệu nói Windows, tín hiệu kia nói macOS.
- Duyệt bình thường vài trang hay dùng, xác nhận dàn chữ không có lỗi nhìn thấy được, đặc biệt là biểu mẫu, nút bấm và văn bản xuống dòng.
Ba mục đều qua mới tính là xong. Không qua thì kiểm tra lại chế độ.
Câu hỏi thường gặp
Trang kiểm tra đánh dấu ClientRects màu đỏ, chắc chắn môi trường có vấn đề?
Chưa chắc. Xem trước hai việc: hệ điều hành và phông chữ môi trường khai báo có khớp phong cách số đo hay không, trạng thái thu phóng có ăn khớp với tham số màn hình hay không. Cả hai nơi đều bình thường thì một mục đỏ đơn lẻ không cần lo; phong cách số đo xung đột rõ ràng với phần khai báo mới cần vào cài đặt fingerprint đối chiếu chế độ.
Thay đổi thu phóng trình duyệt có làm đổi fingerprint ClientRects không?
Có. Thu phóng đi thẳng vào pipeline bố cục, cách làm tròn hình chữ nhật đổi theo. Nhưng thu phóng là hành vi bình thường của mọi người dùng. Rủi ro nằm ở chỗ khác: trạng thái thu phóng không khớp với tham số màn hình môi trường khai báo. Phần ổn định giữa các phiên vẫn do render stack quyết định.
ClientRects có thể bị tắt không?
Không. Tính toán bố cục là nền tảng để trang web hoạt động bình thường, dàn chữ, định vị popup, hoạt ảnh đều phụ thuộc vào nó. Trình duyệt không cung cấp công tắc tắt. Cách làm của ngành là giảm độ chính xác thay vì tắt, Tor Browser làm tròn giá trị đo để giảm khác biệt nhận diện được.
Vì sao trình duyệt headless dễ bộc lộ ở kích thước phần tử?
Viewport mặc định của môi trường headless rất cố định, render stack văn bản đơn điệu. Hình chữ nhật đo ra thường không khớp với thiết bị mà UA khai báo tự nhận. Hệ thống rủi ro đem rect đối chiếu chéo với các tham số khai báo khác, loại môi trường này rất dễ bị chọn ra.
Kết luận
Vai trò của ClientRects trong đối chiếu nhất quán rất cụ thể: đặt phần khai báo môi trường và dàn chữ thực đo cạnh nhau, mâu thuẫn chính là tín hiệu. Gặp mục đỏ trên trang kiểm tra, trước tiên đối chiếu tham số khai báo và trạng thái thu phóng, xác nhận thuộc khoảng hở nhất quán rồi mới vào cài đặt fingerprint xử lý.
MostMate đặt ClientRects cùng các tham số render khác vào cùng một biểu mẫu cài đặt fingerprint, hai chế độ Real và Noise điều khiển nguồn số đo. Diện mạo đầy đủ của tính năng sản phẩm có thể xem qua trang chủ MostMate. Sau khi tạo môi trường, dùng đối chiếu hai môi trường để ghi mốc cơ sở số đo, thực tế hơn mọi mẹo cấu hình. Bạn cũng có thể tải MostMate, tạo hai môi trường và tự đo một lượt khác biệt giữa Real và Noise.
MOSTMATE
Quản lý nhiều tài khoản an toàn, thật đơn giản
Bắt đầu với tài khoản đầu tiên và dùng MostMate để xây dựng hoạt động đa tài khoản an toàn, thông minh và hiệu quả hơn.
- Hồ sơ độc lập. Danh tính nhất quán.
- Tự động hóa bằng AI · Tình trạng tài khoản · Vận hành nhóm



