NimbusX
00
› đã tải trang
← blog
di động15.07.20267 phút

Dấu vân tay di động không cần điện thoại

Hồ sơ Android chạy trên máy tính thông thường và nhận kết luận Trustworthy từ iphey. Bài học đắt giá là không gán phần cứng điện thoại bằng tay. Vẫn còn một giới hạn của cửa sổ máy tính và sản phẩm hiển thị rõ điều đó.

01Cách bật

Tạo hồ sơ di động bằng tùy chọn:

$ python -m app.cli profile create \ --name mobile-01 --platform android

Engine chọn một danh tính di động nhất quán, gồm model, chipset, màn hình và bộ nhớ. Model thiết bị được khai báo trong uaData.model, cũng là nơi các công cụ kiểm tra đọc thông tin này. Bộ kiểm tra đạt 100 trên 100, iphey trả về Trustworthy và không cần điện thoại vật lý.

02Bài học từ danh sách model đã bị loại bỏ

Phiên bản đầu tiên gán phần cứng điện thoại từ danh sách model do chúng tôi tự duy trì. Danh sách đó đã ghép Pixel 7 với chipset Redmi. Chỉ một chipset sai cũng đủ khiến iphey trả về Unreliable: công cụ phát hiện biết các cặp model và chipset thực tế rõ hơn mọi danh sách viết tay.

Chúng tôi đã loại bỏ hoàn toàn danh sách model tự duy trì. Engine hiện tự chọn danh tính di động, còn một bài kiểm tra hồi quy riêng ngăn lỗi cũ quay lại: NimbusX không áp đặt phần cứng cho danh tính đó. Bài học này không chỉ áp dụng cho hồ sơ di động. Tính nhất quán bên trong quan trọng hơn việc kiểm soát thủ công từng giá trị.

03Các tín hiệu được đo giữa nhiều hồ sơ

Ba hồ sơ di động được tạo liên tiếp trên một máy sạch:

bề mặtKết quả
Phông chữ chỉ có trên Windowskhông để lộ phông nào; cả mười ba phép kiểm tra đều đạt
Thẻ videokhác nhau ở từng hồ sơ
Màn hình đã khai báokhác nhau ở từng hồ sơ
Canvaskhác nhau ở từng hồ sơ
Số bộ xử lý logictám ở mọi hồ sơ, giống các điện thoại tham chiếu

Phông chữ là phép kiểm tra rõ nhất. Nếu một hồ sơ tự nhận là Pixel nhưng để lộ Calibri hoặc Segoe UI, mâu thuẫn sẽ xuất hiện ngay vì Android không có những phông chữ này. Chúng tôi thử mười ba phông chỉ được cài cùng Windows hoặc Microsoft Office và hồ sơ không để lộ phông nào.

04Giới hạn của cửa sổ máy tính

Viewport bố cục của hồ sơ di động rộng hơn màn hình đã khai báo. Engine thay đổi screen và outerWidth, nhưng trình duyệt vẫn chạy trong một cửa sổ thật của hệ điều hành máy tính. Hồ sơ khai báo 360×800, còn viewport bố cục thực tế là 500×731. Chúng tôi đã thử các phương án sau:

Phương ánChiều rộng viewport bố cục
không điều chỉnh500
cửa sổ 412×915500
cửa sổ 300×600500
tỷ lệ render 1,27510
chế độ headless478

Giới hạn đến từ chiều rộng cửa sổ tối thiểu của Chrome trên máy tính, khoảng 500 pixel CSS. Điện thoại không có viewport rộng như vậy, nên độ lệch không thể biến mất khi trình duyệt vẫn chạy trong cửa sổ máy tính. Việc giả lập innerWidth tách khỏi bố cục thật sẽ không hiệu quả. Media query đầu tiên sẽ đọc được chiều rộng thực và tạo ra hai giá trị mâu thuẫn thay vì một.

Phần có thể cải thiện: sau khi mở, NimbusX điều chỉnh cửa sổ theo chiều cao do chính trang khai báo và CreepJS không còn đánh dấu mục Screen. Phần chênh lệch chiều rộng còn lại được hiển thị trên bảng điều khiển: ô WIN bị làm mờ và phần giải thích nằm dưới bảng. Che giấu không có ý nghĩa vì trang web nhìn thấy độ lệch trước cả người dùng.

05Đọc thêm

Tính nhất quán quan trọng hơn số lượng · Trình kiểm tra liên kết hồ sơ như thế nào

Tải xuống NimbusXCâu hỏi kỹ thuật: @Get_NimbusX_Bot