spider_fingerprint

Crates.iospider_fingerprint
lib.rsspider_fingerprint
version2.37.149
created_at2025-05-14 16:12:35.44552+00
updated_at2025-09-17 23:55:02.196998+00
descriptionFingerprint library for Rust.
homepagehttps://github.com/spider-rs/spider_fingerprint
repositoryhttps://github.com/spider-rs/spider_fingerprint
max_upload_size
id1673622
size277,583
Jeff Mendez (j-mendez)

documentation

https://docs.rs/spider_fingerprint

README

spider_fingerprint

A Rust crate to generate stealth JavaScript that spoofs browser fingerprinting features. Useful for emulateting real browser profiles across different platforms. It is recommended to use this project with headless-browser for real profiles and the latest chrome versions.

Purpose

  • Mimic real user fingerprints using static profiles
  • Help avoid common browser automation detection methods
  • Generate scripts for injection into browser environments

Features

  • Tiered spoofing levels (basic to full)
  • WebGL and GPU spoofing (WIP)
  • navigator.userAgentData high entropy value support
  • Plugin and mimeType spoofing
  • Optional mouse and viewport spoofing
  • Platform-specific variants (macOS, Windows, Linux)

Example

use spider_fingerprint::{build_stealth_script, builder::{Tier, AgentOs}};

let script = build_stealth_script(Tier::Full, AgentOs::Mac);
// Inject `script` into a browser context

Spoofing Tiers

This crate provides multiple spoofing levels depending on the desired realism and complexity.


| Tier            | Description                                               |
|-----------------|-----------------------------------------------------------|
| `Basic`         | Chrome props, WebGL spoofing, plugins/mimeTypes           |
| `BasicNoWebgl`  | Same as Basic but skips WebGL spoofing                    |
| `Mid`           | Adds WebDriver hiding                                     |
| `Full`          | All spoofing including WebGPU adapter spoof               |

Configuration

You can override the default Chrome versions with the env configs:

CHROME_NOT_A_BRAND_VERSION="99.0.0.0"
CHROME_VERSION_FULL=139.0.7258.67

License

MIT

Commit count: 20

cargo fmt