Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

fingerprint-generator

Package Overview
Dependencies
Maintainers
10
Versions
100
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fingerprint-generator

NodeJS package for generating realistic browser fingerprints.

  • 2.1.61
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
36K
increased by22.28%
Maintainers
10
Weekly downloads
 
Created
Source

Fingerprinting suite

NPM dev version Chat on discord

fingerprint-suite is a handcrafted assembly of tools for browser fingerprint generation and injection. Today's websites are increasingly using fingerprinting to track users and identify them. With the help of fingerprint-suite you can generate and inject browser fingerprints into your browser, allowing you to fly your scrapers under the radar.

Would you like to work with us on our fingerprinting tools or similar projects? We are hiring!

Overview

fingerprint-suite is a modular toolkit for browser fingerprint generation and injection. It consists of the following npm packages, which you can use separately, or together:

  • header-generator: generates configurable, realistic HTTP headers
  • fingerprint-generator: generates realistic browser fingerprints, affecting the HTTP headers and browser JS APIs
  • fingerprint-injector: injects browser fingerprints into your Playwright or Puppeteer managed browser instance
  • generative-bayesian-network: our fast implementation of a Bayesian generative network used to generate realistic browser fingerprints

Quick start

The following example shows how to use the fingerprinting tools to camouflage your Playwright-managed Chromium instance.

import { chromium } from 'playwright';
import { newInjectedContext } from 'fingerprint-injector';

(async () => {
    const browser = await chromium.launch({ headless: false });
    const context = await newInjectedContext(
        browser,
        {
            // Constraints for the generated fingerprint (optional)
            fingerprintOptions: {
                devices: ['mobile'],
                operatingSystems: ['ios'],
            },
            // Playwright's newContext() options (optional, random example for illustration)
            newContextOptions: {
                geolocation: {
                    latitude: 51.50853,
                    longitude: -0.12574,
                }
            }
        },
    );

    const page = await context.newPage();
   // ... your code using `page` here
})();

Here is the same example using Puppeteer:

import puppeteer from 'puppeteer';
import { newInjectedPage } from 'fingerprint-injector';

(async () => {
    const browser = await puppeteer.launch({ headless: false });
    const page = await newInjectedPage(
        browser,
        {
            // constraints for the generated fingerprint
            fingerprintOptions: {
                devices: ['mobile'],
                operatingSystems: ['ios'],
            },
        },
    );

    // ... your code using `page` here
    await page.goto('https://example.com');
})();

Performance

With ever-improving performance of antibot fingerprinting services, we use some of the industry-leading services to benchmark our performance. The following table shows how is the latest build of fingerprint-suite doing in comparison to other popular fingerprinting tools.

Fingerprinting Benchmark Report

Support

If you find any bug or issue with any of the fingerprinting tools, please submit an issue on GitHub. For questions, you can ask on Stack Overflow or contact support@apify.com

Contributing

Your code contributions are welcome and you'll be praised for eternity! If you have any ideas for improvements, either submit an issue or create a pull request. For contribution guidelines and the code of conduct, see CONTRIBUTING.md.

License

This project is licensed under the Apache License 2.0 - see the LICENSE.md file for details.

FAQs

Package last updated on 11 Dec 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc