生成虚假的浏览器指纹
运行指纹生成.
没有进行处理前:
进行处理后:
npm install fake-fingerprint
import FakeFingerPrint from "fake-fingerprint";
const instance = new FakeFingerPrint({
config: {
/* 浏览器的navigator对象. 能够对它的一些属性进行自定义配置. */
navigator: {
userAgent: "Custom UA",
// 更多的navigator属性
},
/* 浏览器的screen对象. 能够对它的一些属性进行自定义配置. */
screen: {
width: 9999,
height: 88,
// 更多的screen属性
},
canvas: {
fillText: "hello fake",
},
audio: {
strength: 100,
},
timezone: {
zone: "America/New_York",
locale: "en-US",
offset: -5,
},
webGL: {
driver: "ANGLE (NVIDIA GeForce GTX 1050 Ti Direct3D11 vs_5_0 ps_5_0)",
},
webRTC: {
address: "127.0.0.1",
},
},
/*
当调用修改的方法或访问代理的属性时报告
例如:{type:'navigator',key:'UserAgent'}
*/
report: (arg) => {
console.log("arg:", arg);
},
/* 当这些属性被访问的时候进行报告 */
reportKeys: ["userAgent", "appVersion", "toDataURL"],
});
instance.open();
名称 | 描述 | 类型 | 是否必须 |
---|---|---|---|
config | 指纹生成的配置 | object | 否 |
report | 当方法或者属性被访问的时候,它将被调用 | function | 是 |
reportKeys | 需要进行报告的key值,如果不传那么所有的key都会进行报告 | key[] | 否 |
config
:
名称 | 描述 | 例子 |
---|---|---|
navigator | 浏览器的navigator对象, 你可以配置UA,appAgent和其他的navigator对象信息 | {userAgent: "Custom UA",appName: "123"} |
screen | 浏览器的screen对象, 你可以配置width,height和其他的screen对象信息 | {width:8888,height:123} |
canvas | 当toDataURL方法被调用的时候,自定义生成fillText的信息 | {fillText:'test'} |
audio | 当生成指纹的时候,自定义添加的噪音强度 | {strength: 100} |
timezone | 自定义时区信息, offset是相对于标准时间的偏移量, 单位是小时 | {zone: "America/New_York",locale: "en-US",offset: -5} |
webGL | 返回渲染的设备信息 | {driver: "ANGLE (NVIDIA GeForce GTX 1050 Ti Direct3D11 vs_5_0 ps_5_0)"} |
webRTC | 自定义的ip地址信息 | {address:"127.0.0.1"} |
名称 | 描述 | 类型 | 示例 |
---|---|---|---|
open | 开启虚假指纹的配置,如果不指定参数,默认开启所有配置 | function | instance.open(['navigator','canvas']) |
close | 关闭虚假指纹的配置,如果不指定参数,默认开启所有配置 | function | instance.close(['navigator','canvas']) |
set | 设置虚假指纹的配置 | function | instance.set({ navigator: { userAgent: 'Custom UA' } }) |
getKeysStatus | 获取当前配置的类别使用情况 | function | {close:['navigator','canvas'],open:['canvas','webGL']} |
MIT @hemengke1997