4 chromium指纹浏览器参数传递


1. 概述

指纹浏览器(Fingerprint Browser)通过修改浏览器参数来伪装用户的指纹信息,例如 User-Agent、WebRTC、Canvas 指纹等。为了实现这一目标,我们需要使用不同的参数传递方式来控制浏览器行为。

本教程将介绍五种主要的参数传递方式,包括命令行参数、配置文件修改、WebSocket/IPC 传递参数、HTTP 接口以及系统环境变量。

2. 命令行参数

Chromium 允许在启动时通过命令行参数传递配置,以影响浏览器的某些特性。例如:

chromium  --fingerprintstr="{\"productSub\":\"20030107\",\"vendor\":\"Google Inc.\",\"cpu\":20,\"deviceMemory\":32}" \
 

常见命令行参数

参数 作用
userAgent 伪造 User-Agent
proxy-server 设置代理
disable-webgl 关闭 WebGL(防止 Canvas 指纹识别)
lang 关闭 WebRTC(防止 IP 泄露)
webrtc webrtc
audio audio

3. 配置文件修改(Preferences / Local State)

Chromium 读取本地文件

enable=1
navigator.deviceMemory=6 
navigator.vendor=Google Inc.123
concurrency=88

4. WebSocket / IPC 传递参数

如果你的指纹浏览器基于 Electron,可以使用 WebSocket 或 IPC 传递参数。

const { ipcMain } = require('electron');

ipcMain.on('set-user-agent', (event, userAgent) => {
    win.webContents.setUserAgent(userAgent);
});

5. HTTP 接口传递参数

指纹浏览器可以通过 HTTP 接口接受参数,并动态修改浏览器行为。例如,可以搭建一个本地服务器来接收请求:

from flask import Flask, request

app = Flask(__name__)

@app.route('/set_user_agent', methods=['POST'])
def set_user_agent():
    user_agent = request.json.get('user_agent')
    # 这里可以存储到本地配置文件,或者通过 WebSocket 传递给浏览器进程
    return {"status": "success", "user_agent": user_agent}

if __name__ == '__main__':
    app.run(port=5000)

然后,浏览器可以定期查询这个 API,获取最新的指纹参数。

6. 系统环境变量传递参数

可以使用系统环境变量来传递指纹浏览器的参数,在运行前设置环境变量,例如:

Windows 设置环境变量

$env:CHROMIUM_USER_AGENT="Mozilla/5.0 (Windows NT 10.0; Win64; x64)"
start chrome.exe

Linux / Mac 设置环境变量

export CHROMIUM_USER_AGENT="Mozilla/5.0 (Windows NT 10.0; Win64; x64)"
chromium

浏览器启动后,可以在代码中读取这些环境变量,例如在 Node.js 中:

const userAgent = process.env.CHROMIUM_USER_AGENT || "Default-UA";
console.log("Current User-Agent:", userAgent);

7. 传值结论

方式 适用场景 适合修改的指纹
命令行参数 启动时静态设置 User-Agent、WebRTC、窗口大小
配置文件 适用于长期存储 语言、最近打开时间
WebSocket / IPC 适用于 Electron 浏览器 User-Agent、代理
HTTP 接口 适用于远程管理 User-Agent、Canvas 指纹
系统环境变量 适用于动态配置 User-Agent、代理

对于开发 Chromium 指纹浏览器,建议结合 命令行参数 + 配置文件 + WebSocket/IPC + HTTP 接口 + 环境变量,以实现更好的指纹伪造效果!

8. 统一获取参数方法

base::Easybrparam param;
std::string _vendor = param.GetValue("vendor");
if (!_vendor.empty()) {

}

文章作者: easybr官方
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 easybr官方 !
 上一篇
6.Easybr 2025 指纹浏览器 CPU 核心数伪装教程 6.Easybr 2025 指纹浏览器 CPU 核心数伪装教程
navigator.hardwareConcurrency 可用于获取当前设备的 CPU 逻辑核心数量。这一信息常被用于识别用户设备等级或作为浏览器指纹的一部分参与反欺诈系统分析。
下一篇 
2 EasyBr极简指纹浏览器使用流程 2 EasyBr极简指纹浏览器使用流程
EasyBr指纹浏览器使用流程详述--新用户快速入门须知,浏览器所有功能注释。
2025-04-11
  目录