joe12387 / op-fingerprinting-script Goto Github PK
View Code? Open in Web Editor NEWAn overpowered JavaScript browser fingerprinting library for creating persistent, unique and long-lasting digital fingerprints.
License: MIT License
An overpowered JavaScript browser fingerprinting library for creating persistent, unique and long-lasting digital fingerprints.
License: MIT License
Maybe replace murmur (32bit) with this hash:
https://github.com/bryc/code/blob/master/jshash/experimental/cyrb53.js
Maybe only to hash the result:
https://github.com/Joe12387/OP-Fingerprinting-Script/blob/main/src/opfs.ts#L1033
why is fingerprint not exported? cannot seem to import it in my project.
These features are unstable:
speechSynthesis
on userAgentData == ["Chromium","Microsoft Edge"]
rtt
on userAgentData == ["Chromium","Opera"]
Thanks a lot + best wishes!
Hi @Joe12387 thanks for this library!
However, the FP from demo site gets changed every now and then for me, between page loads (couple of times per day). Do you know of a FP method that could be causing this and how to potentially mitigate this?
I am also getting different FPs from locally run opfs.js and the demo site.
output from demo page below
FP: 332196546
{
"platform": [
0,
"Win32"
],
"vendor": [
0,
"Google Inc."
],
"productSub": [
0,
"20030107"
],
"colorDepth": [
0,
24
],
"devicePixelRatio": [
0,
1
],
"evalToString": [
0,
33
],
"maxTouchPoints": [
0,
0
],
"cpuClass": [
-1,
null
],
"hardwareConcurrency": [
0,
16
],
"deviceMemory": [
0,
8
],
"oscpu": [
-1,
null
],
"doNotTrack": [
0,
"1"
],
"sourceBuffer": [
0,
[
"function",
"function"
]
],
"colorGamut": [
0,
"srgb"
],
"reducedMotion": [
0,
false
],
"hdr": [
0,
false
],
"contrast": [
0,
0
],
"invertedColors": [
0,
true
],
"forcedColors": [
0,
false
],
"monochrome": [
0,
0
],
"browserObjects": [
0,
[
"chrome"
]
],
"timezone": [
0,
"Europe/Bratislava"
],
"timezoneOffset": [
0,
60
],
"language": [
0,
[
"sk-SK",
[]
]
],
"screenResolution": [
0,
"1920x1080"
],
"jsHeapSizeLimit": [
0,
2172649472
],
"audioContext": [
0,
124.04347527516074
],
"userAgentData": [
0,
[
[
"Chromium",
"Google Chrome"
],
false,
"Windows",
"x86",
"64",
""
]
],
"canvasAPI": [
0,
{
"geometry": {
"hash": 834142715,
"winding": true
},
"text": {
"hash": 1191285947,
"winding": true
},
"combined": {
"hash": 614054431,
"winding": true
}
}
],
"performance": [
0,
[
0.09999999962747097,
0.10000000055879354
]
],
"speechSynthesis": [
0,
1630920979
],
"applePay": [
-1,
null
],
"attributionsourceid": [
-1,
null
],
"webglInfo": [
0,
{
"unmaskedVendor": "Google Inc. (AMD)",
"unmaskedRenderer": "ANGLE (AMD, AMD Radeon(TM) Graphics Direct3D11 vs_5_0 ps_5_0, D3D11)",
"version": "WebGL 1.0 (OpenGL ES 2.0 Chromium)",
"shaderVersion": "WebGL GLSL ES 1.0 (OpenGL ES GLSL ES 1.0 Chromium)",
"vendor": "WebKit",
"renderer": "WebKit WebGL",
"attributes": 3667324841,
"parameters": 3335176999,
"shaderPrecision": 1999347962,
"extensions": 3388515460,
"constants": 706413286
}
],
"webglProgram": [
0,
804895490
],
"fonts": [
0,
[
".Mondulkiri U GR 1.5",
"Agency FB",
"Algerian",
"Arial",
"Arial Black",
"Arial Narrow",
"BPG Classic 99U",
"Baskerville Old Face",
"Bauhaus 93",
"Bell MT",
"Berlin Sans FB",
"Bernard MT Condensed",
"Blackadder ITC",
"Bodoni MT",
"Bodoni MT Black",
"Bodoni MT Condensed",
"Book Antiqua",
"Bookman Old Style",
"Bookshelf Symbol 7",
"Bradley Hand ITC",
"Broadway",
"Brush Script MT",
"Calibri",
"Calibri Light",
"Californian FB",
"Calisto MT",
"Cambria",
"Cambria Math",
"Candara",
"Castellar",
"Centaur",
"Century",
"Century Gothic",
"Century Schoolbook",
"Chiller",
"Colonna MT",
"Comic Sans MS",
"Consolas",
"Constantia",
"Cooper Black",
"Copperplate Gothic Light",
"Corbel",
"Courier",
"Courier New",
"Curlz MT",
"Ebrima",
"Edwardian Script ITC",
"Elephant",
"Engravers MT",
"Felix Titling",
"Footlight MT Light",
"Forte",
"Franklin Gothic Book",
"Franklin Gothic Heavy",
"Franklin Gothic Medium",
"Freestyle Script",
"French Script MT",
"Gabriola",
"Gadugi",
"Garamond",
"Georgia",
"Gigi",
"Gill Sans MT",
"Gill Sans MT Condensed",
"Goudy Old Style",
"Goudy Stout",
"Haettenschweiler",
"Harrington",
"Helvetica",
"High Tower Text",
"Impact",
"Imprint MT Shadow",
"Informal Roman",
"Jokerman",
"Juice ITC",
"Kristen ITC",
"Kunstler Script",
"Lucida Bright",
"Lucida Calligraphy",
"Lucida Console",
"Lucida Fax",
"Lucida Handwriting",
"Lucida Sans",
"Lucida Sans Typewriter",
"Lucida Sans Unicode",
"MS Gothic",
"MS Outlook",
"MS PGothic",
"MS Reference Sans Serif",
"MS Reference Specialty",
"MS Sans Serif",
"MS Serif",
"MS UI Gothic",
"MT Extra",
"MV Boli",
"Magneto",
"Maiandra GD",
"Malgun Gothic",
"Marlett",
"Matura MT Script Capitals",
"Microsoft Himalaya",
"Microsoft JhengHei",
"Microsoft JhengHei UI",
"Microsoft New Tai Lue",
"Microsoft PhagsPa",
"Microsoft Sans Serif",
"Microsoft Tai Le",
"Microsoft YaHei",
"Microsoft YaHei UI",
"Microsoft Yi Baiti",
"Ming(for ISO10646)",
"MingLiU-ExtB",
"MingLiU_HKSCS-ExtB",
"Mistral",
"Modern No. 20",
"Mongolian Baiti",
"Monotype Corsiva",
"NSimSun",
"Niagara Engraved",
"Niagara Solid",
"Nirmala UI",
"OCR-B 10 BT",
"Old English Text MT",
"Onyx",
"PMingLiU-ExtB",
"Palace Script MT",
"Palatino Linotype",
"Papyrus",
"Parchment",
"Perpetua",
"Perpetua Titling MT",
"Playbill",
"Poor Richard",
"Pristina",
"Proxy 1",
"Proxy 2",
"Proxy 3",
"Proxy 4",
"Proxy 5",
"Proxy 6",
"Proxy 7",
"Proxy 8",
"Proxy 9",
"Ravie",
"Rockwell",
"Rockwell Condensed",
"Segoe Print",
"Segoe Script",
"Segoe UI",
"Segoe UI Emoji",
"Segoe UI Light",
"Segoe UI Semibold",
"Segoe UI Symbol",
"Showcard Gothic",
"SimSun",
"SimSun-ExtB",
"Snap ITC",
"Stencil",
"Sylfaen",
"Symbol",
"Tahoma",
"Tempus Sans ITC",
"Times",
"Times New Roman",
"Trebuchet MS",
"Tw Cen MT",
"Tw Cen MT Condensed",
"Verdana",
"Viner Hand ITC",
"Vivaldi",
"Vladimir Script",
"Webdings",
"Wide Latin",
"Wingdings",
"Wingdings 2",
"Wingdings 3",
"Yu Gothic",
"cursive",
"fantasy",
"monospace",
"sans-serif",
"serif"
]
],
"plugins": [
-1,
null
],
"pluginLengthIsZero": [
0,
false
],
"sharedArrayBuffer": [
-1,
null
],
"webdriver": [
0,
false
],
"getAttributeNames": [
0,
[]
],
"errorToSource": [
0,
false
],
"errors": [
0,
[
"Invalid or unexpected token",
"Missing initializer in const declaration",
"Identifier 'a' has already been declared",
-1,
-1,
-1,
-1,
-1
]
],
"installTrigger": [
0,
false
],
"rtt": [
0,
false
],
"math": [
0,
2724207184
],
"notifications": [
0,
false
]
}
output from locally run opfs.js
FP: 3938671366
{
"platform": [
0,
"Win32"
],
"vendor": [
0,
"Google Inc."
],
"productSub": [
0,
"20030107"
],
"colorDepth": [
0,
24
],
"devicePixelRatio": [
0,
1
],
"evalToString": [
0,
33
],
"maxTouchPoints": [
0,
0
],
"cpuClass": [
-1,
null
],
"hardwareConcurrency": [
0,
16
],
"deviceMemory": [
0,
8
],
"oscpu": [
-1,
null
],
"doNotTrack": [
0,
"1"
],
"sourceBuffer": [
0,
[
"function",
"function"
]
],
"colorGamut": [
0,
"srgb"
],
"reducedMotion": [
0,
false
],
"hdr": [
0,
false
],
"contrast": [
0,
0
],
"invertedColors": [
0,
true
],
"forcedColors": [
0,
false
],
"monochrome": [
0,
0
],
"browserObjects": [
0,
[
"chrome"
]
],
"timezone": [
0,
"Europe/Bratislava"
],
"timezoneOffset": [
0,
60
],
"language": [
0,
[
"sk-SK",
[]
]
],
"screenResolution": [
0,
"1920x1080"
],
"jsHeapSizeLimit": [
0,
2190000000
],
"audioContext": [
0,
124.04347527516074
],
"userAgentData": [
0,
[
[
"Chromium",
"Google Chrome"
],
false,
"Windows",
"x86",
"64",
""
]
],
"canvasAPI": [
0,
{
"geometry": {
"hash": 834142715,
"winding": true
},
"text": {
"hash": 1191285947,
"winding": true
},
"combined": {
"hash": 614054431,
"winding": true
}
}
],
"performance": [
0,
[
0.09999999962747097,
0.10000000055879354
]
],
"speechSynthesis": [
0,
1630920979
],
"applePay": [
-1,
null
],
"attributionsourceid": [
-1,
null
],
"webglInfo": [
0,
{
"unmaskedVendor": "Google Inc. (AMD)",
"unmaskedRenderer": "ANGLE (AMD, AMD Radeon(TM) Graphics Direct3D11 vs_5_0 ps_5_0, D3D11)",
"version": "WebGL 1.0 (OpenGL ES 2.0 Chromium)",
"shaderVersion": "WebGL GLSL ES 1.0 (OpenGL ES GLSL ES 1.0 Chromium)",
"vendor": "WebKit",
"renderer": "WebKit WebGL",
"attributes": 3667324841,
"parameters": 3335176999,
"shaderPrecision": 1999347962,
"extensions": 3388515460,
"constants": 706413286
}
],
"webglProgram": [
0,
804895490
],
"fonts": [
0,
[
".Mondulkiri U GR 1.5",
"Agency FB",
"Algerian",
"Arial",
"Arial Black",
"Arial Narrow",
"BPG Classic 99U",
"Baskerville Old Face",
"Bauhaus 93",
"Bell MT",
"Berlin Sans FB",
"Bernard MT Condensed",
"Blackadder ITC",
"Bodoni MT",
"Bodoni MT Black",
"Bodoni MT Condensed",
"Book Antiqua",
"Bookman Old Style",
"Bookshelf Symbol 7",
"Bradley Hand ITC",
"Broadway",
"Brush Script MT",
"Calibri",
"Calibri Light",
"Californian FB",
"Calisto MT",
"Cambria",
"Cambria Math",
"Candara",
"Castellar",
"Centaur",
"Century",
"Century Gothic",
"Century Schoolbook",
"Chiller",
"Colonna MT",
"Comic Sans MS",
"Consolas",
"Constantia",
"Cooper Black",
"Copperplate Gothic Light",
"Corbel",
"Courier",
"Courier New",
"Curlz MT",
"Ebrima",
"Edwardian Script ITC",
"Elephant",
"Engravers MT",
"Felix Titling",
"Footlight MT Light",
"Forte",
"Franklin Gothic Book",
"Franklin Gothic Heavy",
"Franklin Gothic Medium",
"Freestyle Script",
"French Script MT",
"Gabriola",
"Gadugi",
"Garamond",
"Georgia",
"Gigi",
"Gill Sans MT",
"Gill Sans MT Condensed",
"Goudy Old Style",
"Goudy Stout",
"Haettenschweiler",
"Harrington",
"Helvetica",
"High Tower Text",
"Impact",
"Imprint MT Shadow",
"Informal Roman",
"Jokerman",
"Juice ITC",
"Kristen ITC",
"Kunstler Script",
"Lucida Bright",
"Lucida Calligraphy",
"Lucida Console",
"Lucida Fax",
"Lucida Handwriting",
"Lucida Sans",
"Lucida Sans Typewriter",
"Lucida Sans Unicode",
"MS Gothic",
"MS Outlook",
"MS PGothic",
"MS Reference Sans Serif",
"MS Reference Specialty",
"MS Sans Serif",
"MS Serif",
"MS UI Gothic",
"MT Extra",
"MV Boli",
"Magneto",
"Maiandra GD",
"Malgun Gothic",
"Marlett",
"Matura MT Script Capitals",
"Microsoft Himalaya",
"Microsoft JhengHei",
"Microsoft JhengHei UI",
"Microsoft New Tai Lue",
"Microsoft PhagsPa",
"Microsoft Sans Serif",
"Microsoft Tai Le",
"Microsoft YaHei",
"Microsoft YaHei UI",
"Microsoft Yi Baiti",
"Ming(for ISO10646)",
"MingLiU-ExtB",
"MingLiU_HKSCS-ExtB",
"Mistral",
"Modern No. 20",
"Mongolian Baiti",
"Monotype Corsiva",
"NSimSun",
"Niagara Engraved",
"Niagara Solid",
"Nirmala UI",
"OCR-B 10 BT",
"Old English Text MT",
"Onyx",
"PMingLiU-ExtB",
"Palace Script MT",
"Palatino Linotype",
"Papyrus",
"Parchment",
"Perpetua",
"Perpetua Titling MT",
"Playbill",
"Poor Richard",
"Pristina",
"Proxy 1",
"Proxy 2",
"Proxy 3",
"Proxy 4",
"Proxy 5",
"Proxy 6",
"Proxy 7",
"Proxy 8",
"Proxy 9",
"Ravie",
"Rockwell",
"Rockwell Condensed",
"Segoe Print",
"Segoe Script",
"Segoe UI",
"Segoe UI Emoji",
"Segoe UI Light",
"Segoe UI Semibold",
"Segoe UI Symbol",
"Showcard Gothic",
"SimSun",
"SimSun-ExtB",
"Snap ITC",
"Stencil",
"Sylfaen",
"Symbol",
"Tahoma",
"Tempus Sans ITC",
"Times",
"Times New Roman",
"Trebuchet MS",
"Tw Cen MT",
"Tw Cen MT Condensed",
"Verdana",
"Viner Hand ITC",
"Vivaldi",
"Vladimir Script",
"Webdings",
"Wide Latin",
"Wingdings",
"Wingdings 2",
"Wingdings 3",
"Yu Gothic",
"cursive",
"fantasy",
"monospace",
"sans-serif",
"serif"
]
],
"plugins": [
-1,
null
],
"pluginLengthIsZero": [
0,
false
],
"sharedArrayBuffer": [
-1,
null
],
"webdriver": [
0,
false
],
"getAttributeNames": [
0,
[]
],
"errorToSource": [
0,
false
],
"errors": [
0,
[
"Invalid or unexpected token",
"Missing initializer in const declaration",
"Identifier 'a' has already been declared",
-1,
-1,
-1,
-1,
-1
]
],
"installTrigger": [
0,
false
],
"rtt": [
0,
false
],
"math": [
0,
2724207184
],
"notifications": [
0,
false
]
}
the difference is in the jsHeapSizeLimit
second parameter
Hello!
I found that in Firefox v106.0.1 in normal mode and incognito mode, the resulting FingerPrint ID is different.
Comparing the output, I see that this is due to a different set of fonts and doNotTrack value:
In normal mode, this is:
"doNotTrack": [0, "unspecified"]
In incognito it is:
"doNotTrack": [0, "1"],
and fonts are similar to normal mode plus the following:
"Arial Black",
"Arial Narrow",
"Bodoni MT Condensed"
You asked to report similar behavior ;-)
And one more thing, in Chrome, when the console is open, the code stops at the following lines:
#260 throw new Error("Max monochrome value is over 100");
#566 let enabled = ap.canMakePayments();
It would be nice if this could be avoided...
have a great day!
This agents are returning the same unique and peristent code
Mozilla/5.0 (iPhone; CPU iPhone OS 16_1_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.1 Mobile/15E148 Safari/604.1
Mozilla/5.0 (iPhone; CPU iPhone OS 16_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.2 Mobile/15E148 Safari/604.1
got this warning
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.