Socket
Socket
Sign inDemoInstall

@hajnalandor/browser-fingerprint

Package Overview
Dependencies
296
Maintainers
1
Versions
23
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @hajnalandor/browser-fingerprint

browser fingerprint based on fingerprint2js and clientjs


Version published
Weekly downloads
33
increased by153.85%
Maintainers
1
Created
Weekly downloads
 

Readme

Source

browser-fingerprint

The library generates and returns a unique identifier with many other data of a browser without using cookies or any information that can be easily reset by a malicious user. browser-fingerprint returns a client object to find out as much useful information as you can about what devices are connecting to your site and your product. There are specific informations like, “does the user have an iOS or Android device?” or better yet, “is the user's device an iPad?”

Browser-fingerprint attempts to solve the problem of making client data more easily available. Good data is necessary for good analytics that help you make better business and tech choices. Do you have good informative data about how your users connect to your site? Do you know their average screen size? BF can help you collect data and make good decisions for your application and business. This library uses clientjs and fingerprintjs2

3 major fingerprint hash which has uniqueness more than 95% accuracy

1. fingerprintId generated from all data

2. canvas fingerprint

3. webGl fingerprint

Project setup

npm install

Compiles and hot-reloads for development

npm run serve

Compiles and minifies for production

npm run build

Usage

import Fingerprint from '../node_modules/@hajnalandor/browser-fingerprint/dist/fingerprint' 
...
...
console.log(Fingerprint.create());

Return object

{

adBlock : string
addBehavior : boolean
audio : string
availableScreenResolutionHeight : number
availableScreenResolutionWidth : number
browser : string
browserMajorVersion : string
browserVersion : string
canvas : Canvas
colorDepth : number \ cpu : string
cpuClass : string
currentResolution : string
data : string //webglData
device : string
deviceMemory : number
deviceType : string
deviceVendor : string
engine : string
engineVersion : string
extensions : string
fingerPrintId : string
flash : boolean
flashVersion : string
fonts : string[]
getSoftwareVersion : string
hardwareConcurrency : number
hasLiedBrowser : boolean
hasLiedLanguages : boolean
hasLiedOs : boolean
hasLiedResolution : boolean
indexedDb : boolean
ismimeType : boolean
java : boolean
javaVersion : string
language : string
localStorage : boolean
mimeType : string
mobile : Mobile
openDatabase : boolean
os : string
osVersion : string
platform : string
plugins : string[]
screenResolutionHeight : number
screenResolutionWidth : number
sessionStorage : boolean
silverlight : boolean
silverlightVersion : string
systemLanguage : string
timeZoneAbbreviation : string
timezone : string
timezoneOffset : number
touchSupport : TouchSupport;
userAgent : string
webdriver : string
webglAliasedLineWidthRange : string[]
webglAliasedPointSizeRange : string[]
webglAlphaBits : string
webglAntialiasing : string
webglBlueBits : string
webglDepthBits : string
webglFragmentShaderHighFloatPrecision : string
webglFragmentShaderHighFloatPrecisionRangeMax : string
webglFragmentShaderHighFloatPrecisionRangeMin : string
webglFragmentShaderHighIntPrecision : string
webglFragmentShaderHighIntPrecisionRangeMax : string
webglFragmentShaderHighIntPrecisionRangeMin : string
webglFragmentShaderLowFloatPrecision : string
webglFragmentShaderLowFloatPrecisionRangeMax : string \
webglFragmentShaderLowFloatPrecisionRangeMin : string
webglFragmentShaderLowIntPrecision : string \
webglFragmentShaderLowIntPrecisionRangeMax : string \
webglFragmentShaderLowIntPrecisionRangeMin : string
webglFragmentShaderMediumFloatPrecision : string
webglFragmentShaderMediumFloatPrecisionRangeMax : string
webglFragmentShaderMediumFloatPrecisionRangeMin : string
webglFragmentShaderMediumIntPrecision : string
webglFragmentShaderMediumIntPrecisionRangeMax : string
webglFragmentShaderMediumIntPrecisionRangeMin : string
webglGreenBits : string
webglMaxAnisotropy : string
webglMaxCombinedTextureImageUnits : string \
webglMaxCubeMapTextureSize : string
webglMaxFragmentUniformVectors : string \
webglMaxRenderBufferSize : string
webglMaxTextureImageUnits : string
webglMaxTextureSize : string
webglMaxVaryingVectors : string
webglMaxVertexAttribs : string
webglMaxVertexTextureImageUnits : string
webglMaxVertexUniformVectors : string
webglMaxViewportDims : string
webglRedBits : string
webglRenderer : string
webglShadingLanguageVersion : string
webglStencilBits : string
webglUnmaskedRenderer : string
webglUnmaskedVendor : string
webglVendor : string
webglVendorAndRenderer : string
webglVersion : string
webglVertexShaderHighFloatPrecision : string
webglVertexShaderHighFloatPrecisionRangeMax : string
webglVertexShaderHighFloatPrecisionRangeMin : string
webglVertexShaderHighIntPrecision : string
webglVertexShaderHighIntPrecisionRangeMax : string
webglVertexShaderHighIntPrecisionRangeMin : string
webglVertexShaderLowFloatPrecision : string
webglVertexShaderLowFloatPrecisionRangeMax : string
webglVertexShaderLowFloatPrecisionRangeMin : string
webglVertexShaderLowIntPrecision : string
webglVertexShaderLowIntPrecisionRangeMax : string
webglVertexShaderLowIntPrecisionRangeMin : string
webglVertexShaderMediumFloatPrecision : string
webglVertexShaderMediumFloatPrecisionRangeMax : string
webglVertexShaderMediumFloatPrecisionRangeMin : string
webglVertexShaderMediumIntPrecision : string
webglVertexShaderMediumIntPrecisionRangeMax : string
webglVertexShaderMediumIntPrecisionRangeMin : string
}

where:

TouchSupport {
maxTouchPoints: number
touchEvent: boolean
touchStart: boolean
}

Canvas {
canvasWinding : string
canvasFp : string
}

Mobile {
isMobile : boolean
isMobileSafari : boolean
isMobileMajor : boolean
isMobileAndroid : boolean
isMobileOpera : boolean
isMobileWindows : boolean
isMobileBlackBerry : boolean
isMobileIOS : boolean
isIphone : boolean
isIpad : boolean
isIpod : boolean
}

FAQs

Last updated on 05 Aug 2019

Did you know?

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc