Web fingerprint research
Some business model required unique ID for fraud detection, it works for App since we can get Android ID for Android device and UUID for IOS devices. As for website, there is no such unique ID and brings great challenge to us if we wants to get unique ID on website.
Popular solutions
Currently, there are two major libraries to generate a consistent and unique ID for Web, fingerprintjs and clientjs
This is a brief comparison of npm trends
Commercial consideration
- fingerprintjs is only free for commercial usage with v3 and below and it declares that accuracy is 40%-60%, the paid version starts from $99/month, for more details, you can check pricing
- clientjs is free to use without any limitation
Consistency Comparison
Test case | clientjs | fingerprintjs v3 |
---|---|---|
Browser upgrade | ❌ | ✅ |
Split screen | ❌ | ❌ |
Incognito mode | ✅ | ✅ |
Resize window size | ✅ | ✅ |
Dev tool - mobile view | ❌ | ❌ |
Dev tool - mobile view - change model | ❌ | ❌ |
Uninstall browser extension | ✅ | ✅ |
Switch from Chrome to Safari | ❌ | ❌ |
New tab | ✅ | ✅ |
Mobile phone-desktop site | ❌ | ✅ |
Close and reopen browser | ✅ | ✅ |
Clear app data - without Google account login | ❌ | ❌ |
Clear app data - with Google account login | ✅ | ✅ |
Uninstall and reinstall app - without Google account login | ❌ | ❌ |
Uninstall and reinstall app - with Google account login | ✅ | ✅ |
Unique Comparison
Test case | clientjs | fingerprintjs v3 |
---|---|---|
Different device | ✅ | ✅ |
Conclusion
- Fingerprintjs is likely to meet the announced accuracy of 40%-60%
- Fingerprintjs has better performance with two more test cases of
Browser upgrade
andMobile phone-desktop
site while the other cases keep the same - For free use, prefer to choose fingerprintjs v3 if the accuracy is acceptable for us, otherwise, we would better choose a paid version of fingerprintjs