[HN Gopher] Show HN: FingerprinterJS - A tiny JavaScript library...
       ___________________________________________________________________
        
       Show HN: FingerprinterJS - A tiny JavaScript library for browser
       fingerprints
        
       I made FingerprinterJS, a small library with no dependencies that
       creates browser fingerprints from signals like canvas, WebGL,
       audio, fonts, userAgent, and screen info.  It's written in
       TypeScript, lets you enable/disable collectors, add custom data,
       and includes a simple suspicious-activity score.  Would love
       feedback.
        
       Author : lococococo
       Score  : 15 points
       Date   : 2025-09-26 17:22 UTC (5 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | mahdiyar wrote:
       | I'm using FingerprintJS, overnight, they changed their pricing
       | and removed the free plan, so I ended up paying for the
       | subscription for the past 3 years. And also I can't remove them
       | because it is critical in our anti-fraud system.
       | 
       | The reason I pay for their library is their accuracy. It would be
       | amazingly interesting if your library could compete. Then I would
       | switch immediately.
       | 
       | By the way, I do not have a problem with paying for a service;
       | their plans are not based on the volume of users. (Minimum is
       | $100 for 20,000 verification) And I use only 2,000.
        
         | bobbiechen wrote:
         | I get that open-source in fraud prevention is really hard, I'm
         | sympathetic to the challenges here.
         | 
         | FingerprintJS open-source (and the discussed FingerprinterJS)
         | are both trivial to spoof since the entire codebase is easily
         | examined, and the implementation is totally open as an oracle
         | to someone who wants to bypass it or construct arbitrary
         | fingerprints. It's a nice proof of concept (and I like the
         | attention to unstable signals in FingerprinterJS here) but
         | ultimately doesn't hold up against any dedicated attackers.
         | 
         | I work on a competing commercial product (Stytch Device
         | Fingerprinting) and your usage would be within our free tier.
         | Unfortunately we don't have an open-source version or self-
         | serve onboarding because of the adversarial problems mentioned
         | above. Happy to chat if that helps, bchen at stytch dot com.
        
         | FP_Protects wrote:
         | Hey - Fingerprint team here.
         | 
         | Thank you for sharing your experience and for highlighting what
         | matters most to you: accuracy and pricing for lower-usage
         | tiers. I definitely hear your frustration with the removal of
         | the Free plan a few years ago and the challenge of not having a
         | plan that fit your usage level.
         | 
         | Based on feedback like yours, we recently introduced a new Free
         | plan (in May) that includes 1,000 API calls for iOS and web,
         | plus 500,000 calls for Android. Depending on which platform
         | your ~2,000 calls are coming from, this might be a better fit.
         | 
         | Your feedback is exactly what helps us shape these updates, so
         | we'll continue to take this into account as we refine our
         | plans. If you'd like, I'd be happy to connect directly to see
         | how we can make sure you're on the plan that best fits your
         | needs.
        
       | galaxy_gas wrote:
       | the code seems like poorly generated ai with unnecessary comments
       | in different languages.
       | 
       | there's no explanation for why certain actions or choices are
       | made.
       | 
       | it doesn't make sense why phantomjs gets a score of 7 while
       | chrome headless gets 8, or why phantomjs and selenium aren't
       | considered headless browsers or automation tools. why the most
       | common legitimate screen resolution is flagged as suspicious or
       | why tools like curl or wget which download conten, are running
       | javascript instead. they would be in a stack that checks ua
       | server side, not in js
        
         | gruez wrote:
         | Yeah, some parts of the code that obviously don't make any
         | sense:
         | 
         | https://github.com/Lorenzo-Coslado/fingerprinter-js/blob/f34...
         | 
         | Why would the user agent of a javascript execution environment
         | ever be curl?
         | 
         | https://github.com/Lorenzo-Coslado/fingerprinter-js/blob/f34...
         | 
         | self explanatory
         | 
         | https://github.com/Lorenzo-Coslado/fingerprinter-js/blob/f34...
         | 
         | variable declared but not used anywhere.
        
       | slig wrote:
       | Thanks for sharing! For me, it's fundamental to have a demo page
       | where we can see it working. A very nice to have would be a
       | comparison between your project and FingerprintJS / CreepJS.
        
       ___________________________________________________________________
       (page generated 2025-09-26 23:01 UTC)