1. Các Tính năng CSS trong Tạo Dấu vân tay là gì
Các trình duyệt cung cấp một số API và khả năng liên quan đến CSS có thể được sử dụng để nhận dạng hoặc tạo dấu vân tay môi trường trình duyệt. Chúng bao gồm:
CSS.supports(property, value)
: Kiểm tra xem trình duyệt có hỗ trợ một thuộc tính hoặc giá trị CSS cụ thể hay không.document.styleSheets
: Liệt kê tất cả các stylesheet đã tải, có thể hiển thị các tiện ích mở rộng đã cài đặt hoặc CSS tùy chỉnh.- Truy vấn tính năng CSS: Các nền tảng có thể phát hiện hỗ trợ cho các module bố cục hiện đại như
@supports
, CSS Grid, Flexbox, API Houdini và nhiều hơn nữa. - Thuộc tính & giá trị CSS tùy chỉnh: Một số script đo lường phản hồi đối với các quy tắc
@property
đã định nghĩa hoặc đánh giáCSS.registerProperty()
. - Hướng màn hình, truy vấn phương tiện (media queries) và prefers-color-scheme: Tất cả những điều này có thể ảnh hưởng đến khả năng CSS và thường được thu thập để làm phong phú dấu vân tay.
Tổng hợp lại, những “dấu vân tay tính năng CSS” này xây dựng một hồ sơ về loại trình duyệt và thiết bị bạn đang sử dụng.
2. Cách các Nền tảng Phát hiện Dấu vân tay dựa trên CSS
Dấu vân tay CSS được thu thập một cách tinh vi trong quá trình hiển thị trang web bình thường hoặc thông qua các thử nghiệm bằng script. Các phương pháp phát hiện bao gồm:
- Liệt kê các Tính năng được Hỗ trợ: Các script kiểm tra
CSS.supports()
trong các vòng lặp hoặc sử dụng các kiểm tra kiểu phân tích cú pháp để đánh giá hành vi bố cục của Grid, Flexbox, backdrop-filter hoặc các phần tử tùy chỉnh. - Kiểm tra StyleSheets: Bằng cách quét tất cả các stylesheet đã tải, những người tạo dấu vân tay có thể phát hiện CSS được tiêm hoặc sửa đổi, đôi khi liên quan đến các công cụ tự động hóa hoặc bỏ qua CSP.
- Thay đổi bố cục dựa trên phông chữ: Các nền tảng có thể quan sát cách các phông chữ tùy chỉnh hoặc kiểu văn bản ảnh hưởng đến bố cục hiển thị và đo lường nó thông qua các API DOMRect hoặc boundingRect.
- Vẽ động trong các Phần tử: Sử dụng
boundingClientRect
,scrollIntoView
hoặcwindow.getComputedStyle()
để đánh giá cách các phần tử phản ứng dưới các bố cục khác nhau có thể đưa ra manh mối về công cụ. - Xuất CSS Houdini: Các trình duyệt hiển thị các API như
CSS.paintWorklet
hoặcCSS.animationWorklet
được gắn cờ với độ chính xác cao hơn — đặc biệt trong việc phát hiện trình duyệt headless hoặc tài chính.
Các tính năng dựa trên CSS đặc biệt hiệu quả trong việc phân biệt hồ sơ duyệt web của người thật với môi trường giả mạo được thiết kế, khiến chúng trở thành mục tiêu chính cho các hệ thống chống đa tài khoản hoặc chống bot hiện đại.
3. Cách FlashID Che giấu các Tính năng CSS
FlashID áp dụng một cách tiếp cận mạnh mẽ và mô-đun để kiểm soát dấu vân tay CSS, cho phép:
- Giả mạo hành vi
CSS.supports()
: Chúng tôi chặn và viết lại các phản hồi về khả năng CSS để phản ánh một hồ sơ trình duyệt nhất quán, do người dùng định nghĩa. - Môi trường Style Sheet cô lập: FlashID đảm bảo rằng nội dung
document.styleSheets
là cụ thể cho từng phiên bản trình duyệt và có thể cắt bỏ để ngăn chặn rò rỉ như phát hiện tiêm stylesheet. - Tính nhất quán trong hiển thị phông chữ: Chúng tôi duy trì các giá trị CSS cụ thể theo hồ sơ bằng cách đảm bảo rằng các kiểu được tính toán liên quan đến phông chữ, khoảng cách và chuyển đổi vẫn ổn định qua các phiên.
- Tùy chỉnh hành vi bố cục: Các lựa chọn bố cục CSS như
display: grid
, các quy tắc flex hoặc phân tích cú pháp giá trị tùy chỉnh được bắt chước chính xác để duy trì tính chân thực của trình duyệt. - Che giấu hỗ trợ Paint Worklet: FlashID có thể mô phỏng hoặc ngăn chặn các API CSS Houdini nâng cao như
paintWorklet
, làm cho việc phát hiện trở nên khó khăn hơn. - Hành vi đáp ứng theo hồ sơ: Các truy vấn phương tiện (media queries), prefers-color-scheme và các kiểu liên quan đến màn hình được điều chỉnh hài hòa với phần còn lại của hồ sơ trình duyệt.
Với những tùy chỉnh cấp cao này, FlashID đảm bảo việc tạo dấu vân tay CSS không tiết lộ danh tính trình duyệt, và mỗi hồ sơ hoạt động như thể đang chạy trên một thiết bị độc đáo, cô lập.
Bạn Cũng Có Thể Thích