Where communities thrive

  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
Repo info
    Kamil Pawluczuk

    4) Fonts analysis with JS. Pretty awesome fingerprint but really time consuming and unstable (I have observed for this fingerprint the highest number of changes) if you collect too many fonts. The entropy I have achieved with a set of 100 optimal fonts was almost identical if consider 800 collected values. Obviously, it would get better with a bigger dataset but my conclusion is still clear – it is really worth to limit the number of fonts (not the random but the most representative set). Execution time improves significantly and the same for stability.
    5) @Valve, you were considering employment of User-Agent parsing library to improve the stability. UA scored for me the 2nd highest instability so it is crucial to do something about it. Yet, the best solution imho is to simply trim the unstable parts from the string, which is in fact the browser version (engine and os are quite ok). Parsing using a library, except of being more expensive, would skip some information that could be useful.
    6) I have found out that canvas, screen dimensions and webGL fingerprints should be particularly taken care of, again, due to the high instability. Drawing a "smile" icon in canvas fingerprint proved to make it really unstable, unfortunately. On the other hand, drawing a simple text is really stable and provides decent information. I know it may sound like going back in evolution but there is so many aspects to be considered... Surprisingly, usage of Arial font instead of fake (fallback) one gave better results, even though the second scored a higher number of unique and distinct values. A lot to play with.
    7) In general, I believe that more focus should be devoted to stability of fp2.js. More and more fingerprints are being added and it doesn't necessary make the script better. People are quite concerned about how often the fingerprint is changing, it is essential for the use cases to keep it stable. I haven't made any official analysis of this particular script but by employing most of the fingerprinting methods I can say the stability leaves a large field for improvement. Well, it must be hard to develop this script without any deterministic data about its efficiency. I am wondering if anyone is collecting and analyzing such data?

    Well, it's much longer than I intended, sorry! :)
    Let me know what you think...

    @bgsavage the final fingerprint is a murmur hash so it's always the same length
    Valentin Vasilyev
    @alatar- thanks for your suggestions, all make sense! Currently @elad-yosifon is working on v2, so he may want to incorporate your ideas. FPJS2 can definitely be made more stable, I agree, but I personally have stopped working on the library and Elad is handling the new development now in v2.
    Great, thanks!
    Kamil Pawluczuk
    Glad you liked the ideas @Valve.
    I guess the change of the main contributor doesn't mean any change of the direction the script is going? I will see if I can contribute some parts of my code. Yet, I have no clue what balance between diversity and stability is intended. Current version I would call diversity-oriented...
    Rafael Mello Campanari
    Hi guys, I have been trying to load fingerprintjs2within my typescript App but it seems the module loader can't find fingerprintjs2 module, my sample app is on github: https://github.com/melloc01/ts-library-starter - there are some instructions the get the app running, thank you in advance = ] @Valve
    Victor Ng
    Hi there, I am currently exploring on the topic of identification through web requests. Aside from information obtainable from this library, are there any other information which I could use?
    Caleb Chiesa
    Is there an es6 example?
    Hello, I have almost no javascript experience and need help figuring out the usage of Fingerprint2. I'm trying to set up a custom javascript variable that returns the "results" variable referenced in the doc's usage section. Can anyone assist?
    When will be released the Half-Life 3 ?
    Maybe you can find something useful and not implemented in fp2
    But as i see almost all methods used already :)
    @Valve I would like to contribute to the repository but got a few questions:
    1. Is there a particular reason why there is no headless browser testing framework included? I would like to integrate Karma (or something like that) to write automated tests for all browsers
    1. I see a lot of features issues closed because you "want to focus on optimizing the features you got". Is that something you want to hold on to? I really need a couple of new methods to check a browser fingerprint and I am willing to implement them, but when you say upfront that they will not be included I just gonna fork.
    I wonder, why 1.4.4 version shows different fingertips in different ways.
    e.g in your http://valve.github.io/fingerprintjs2/ I see one fingertip, but when I download zip file with 1.4.4 version and put it on my website and go to index.html - fingertip is different... but when I use this library - i receive the one that is the same as fingertip from your site... Internet Explorer, Firefox shows the same fingertips everywhere... when using my local webserver I also get the same fingertip identical to the fingertip from your side...
    version 1.4.0 did not have such issues... what can it be?
    I was wondering if you could tell me where you got the fonts and extended fonts list from for the JS/CSS font detection test
    Sundareswaran S
    @Valve -- any idea why the regular_plugin would provide different results when accessing different webpages. please see the below screenshot
    The first result is a webpage that uses angular which includes Shockwave Flash in the list, whereas the second one is a plain HTML with <script> it doesn't see to pull up Shockwave flash into consideration to compute fingerprint
    @Valve Hey! A very small suggestion, for people like me who don't wanna go digging through the code for an answer:
    Write somewhere in the read-me the exact parameters of the output string - aka - "Returns a string of the length 30 to 34 that contains only digits and lowercase letters".
    This would make first-time users' life a bit simpler =)
    @valve -- So, testing this on a live production site resulted in tons of duplicate fp's from different users. Reading the FAQ it appears that this solution, while very cool, just isn't going to deliver unique user detection. Do you know of any modern open source libraries that approach 98-100% accuracy?
    @BruceBissett, I do not think you can find a cool thing for this.. At least, free of charge )
    Valentin Vasilyev
    @qqTYXn7 just took from some web page, similar to "the fonts that can be found anywhere" etc
    @sundarseswaran_twitter probably plugins are the same, their order is random every time you access
    @MXSteel please submit a PR for the readme :)
    @BruceBissett I believe you cannot get 98-100% accuracy with JS only. Please look at augur.io, they're not OSS but worth trying
    @daankuijsten yes, initially I was using phantomjs for tests but it cannot run flash, so I dropped the idea, didn't want extra complexity.
    @melloc01 the module loading is broken in the library. Nobody has submitted a PR to fix it yet, so it seems that it's an unnecessary feature. If you need it, please submit a PR
    Aditya Agarwal
    @Valve In the hasLiedLanguage what is the significance of matching the substring of length 2 and not the entire strings ?
    Aditya Agarwal
    @Valve Also I think there might be a possible bug in hasLiedBrowser since chrome UA on iphone is something like this - Mozilla/5.0 (iPhone; CPU iPhone OS 10_3 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) CriOS/56.0.2924.75 Mobile/14E5239e Safari/602.1
    @Valve as you can see there is no mention of chrome hence this would be detected as safari
    Himanshu Ranavat
    question: the fingerprintJS2 library - how expensive it is to run to calculate the fingerprint. could it be a issue on mobile browsers?
    Aditya Agarwal
    @ptrinh what exactly is this theatMatrix doing ?
    Steven Borrelli
    The function itself is defined to return 1 if it cannot determine the number of processors, but fingerprint.js returns "unknown". This caused one of our APIs endpoints to have an error, as it was expecting an int in that field.
    I see returning "unknown" is a common patter, but it seems like it would cause issues on systems that have stricter type enforcement.
    Nitzan Aviram
    Hi, I am looking for a consultant with a vast experience in fingerprinting. Mostly to guide us and help us choose the right set of attributes. Can some one consult us and invoice us?
    Neumann Valle
    @Valve Hello. I have a question about this library. How unique is the generated fingerprint hash / What are the odds that we get a collision?
    @Valve I posted the same question on github as an issue. Basically, my question is, is there a way to make fingerprint generation synchronous? I assume that when I call new FingerprintJS2() it starts up an asynchronous thread
    Kevin Chappell
    @minglethepringle can you use async/await?
    @t0shki__twitter Are you encountering collisions? We are finding collision with requests using this specific user_agent Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_3 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.0 Mobile/14G60 Safari/602.1
    Kevin Chappell
    nevermind, just read the FAQ, thanks.
    Dmitry Nechay
    Hi everybody!
    Can somebody hint me which hash algorithm uses fp2? Or maybe some ways how to validate some string on fp2 hash value?
    Привет , кто может помочь с установкой и настройкой fp2 ?<_>
    Hi, who can help install the fingerprint?
    @Valve помогите с установкой и настройкой .
    Valentin Vasilyev