jackspirou / clientjs Goto Github PK
View Code? Open in Web Editor NEWDevice information and digital fingerprinting written in pure JavaScript.
Home Page: http://clientjs.org
License: Apache License 2.0
Device information and digital fingerprinting written in pure JavaScript.
Home Page: http://clientjs.org
License: Apache License 2.0
https://clientjs.org
new ClientJS().getSoftwareVersion()
"ClientJS 0.1.9"
Oficial Release
new ClientJS().getSoftwareVersion()
"ClientJS 0.1.5"
They are generating different fingerprints
:(
Develop a standard release process and determine the files and packages present in the project dist
directory.
var client = new ClientJS();
var fingerprint = client.getFingerprint();
console.log(fingerprint); // fingerprint, change will happen
Remove Minification Bash Script That Uses Google JavaScript Compiler.jar
Hi!
I'm making an app for iPhone using Phonegap and I liked your library so I wanted to use it to identify people and remember their logins.
The problem is that every time I run the app it gets me different fingerprints. I haven't done anything weird, on XCode I run the app and gives me a value. I stop it, run it again and it gives me a different value.
Thanks!
Minified version is of more size than actual. Minified is 44.7 KB and Normal is 25.1 KB
Hi,
I've tried to import the library to my application import ClientJS from 'clientjs';
and got an error
TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them
here
using babel-loader v6.2.5, webpack v1.13.0, clientjs v0.1.11
After some reading I've come to conclusion that the core reason of the problem is that ES6 modules are automatically strict-mode code. (arguments.callee is forbidden to use in strict mode).
My assumption how to fix it: to update swfobject tool to the latest version where the problem won't exist.
Do you think it's all right to do it ? or Am I missing something that doesn't require this fix?
Thanks in advance.
Are there any plans to add HTML5 Geolocation to the list of methods?
I have observed over 3 days, everyday in the same browser the client.getFingerprint() changes.
Is there any way to keep it same everytime
canvas methods do not fail gracefully for IE versions 8 and below (and perhaps other browsers).
As a result, client.getFingerprint()
will throw an error on these browsers and no fingerprint can be computed.
This can be cleared up by wrapping canvas methods in try/catch blocks, but not sure this is the method jackspirou prefers. If so, I can submit a pull request.
is it possible to integrate it with angular2. I am unable to import clientjs as a module.
Review test quality for stability and reliability.
Is it not possible to remove objects like java and Flash after tests? I can access over the id and remove it. But i tink it´s better to remove it on default by clientJS
var UA = new ClientJS();
var ua = UA.getBrowserData().ua;
var canvasPrint = UA.getCanvasPrint();
return {
"device_type": UA.getDevice(), //returns undefined
"model": UA.getDeviceType(), //returns undefined
"manufacturer": UA.getDeviceVendor(), //returns undefined
'fingerprint':UA.getCustomFingerprint(ua, canvasPrint)
}
I'm trying to use it in minimal html that looks like this
<!DOCTYPE html>
<html lang="en">
<head>
<script src="https://clientjs.org/js/client.min.js"></script>
</head>
<script>
var client = new ClientJS(); // Create A New Client Object
var fingerprint = client.getFingerprint(); // Calculate Device/Browser Fingerprint
alert( fingerprint );
</script>
<body>
test
</body>
</html>
In Chrome console I see error
Uncaught TypeError: Cannot read property 'appendChild' of undefined client.min.js:24
What am I missing ?
When getting client plugins a flash plugin window briefly flickers onscreen. This is with flash disabled.
Clientjs library is showing same fingerprint IDs for two different systems connected on same network. How could I resolve this issue?
Do you think it would be possible to generate a device fingerprint (i.e. excluding browser info) that is meaningful? You'd obviously have a much lower likelihood of uniqueness for the ID.
The use case is providing signals to contribute to some anti-gaming analytics. We know that some users switch browsers and try to up-vote themselves with different accounts.
If you think this is worth adding would you like to see "device" and "browser" provided to the getFingerprint function or a separate getDeviceFingerprint function.
Is there anything we should consider if we wanted to take a shot and submit a pull request?
On getFingerprint:
var userAgent = browserData.ua;
this get undefined. Should be changed to:
var userAgent = browserData().ua;
when checking in the blackberry 10 browser the unique code changes even without deleting cookies or going into private mode. just by refreshing the page.
getFingerprint and getCustomFingerprint should work something like this
client.getFingerprint(function(fingerprint){
console.log(fingerprint);
console.log(client.getBrowser());
});
client.getCustomFingerprint(dataInAFormat, function(fingerprint){
console.log(fingerprint);
console.log(client.getBrowser());
});
Or maybe returning a promise...
I don't analyze why, but on some servers fingerprint id is different for SAME browser. Problem is Ubuntu font in function getFonts, sometimes was added to existing fonts, sometimes not. Please remove this font.
This is an issue for #31 to close.
I think we are contracting this out to https://www.fiverr.com/.
so, if i try to calculate like
getCustomFingerprint('dfds')
result will be the same for any string, but if do something like
getCustomFingerprint('dfds', '')
then it will actually work fine for first parameter, but last one can be anything and result will not change
I noticed that package.json
says the project is on version 0.0.1. while bower.json
says it is 0.1.5. It would be less confusing if they were synchronized.
https://github.com/dsmontoya/clientjs/tree/karma-implementation
Specs here are simple, but they work.
Hi!
problem is in this line: https://github.com/jackspirou/clientjs/blob/master/src/client.js#L683
in minified version before this line exports = q is executed, q is a UAParser here which is a function.
so typeof exports === 'object' is false here
so "module.exports = ClientJS;" is never executed so when one require clientjs he has a UAParser instead.
hope that makes sense
Increase testing coverage reporting from ~50% to ~75% on Aircover.
Hi,
I'm trying to get clientjs to run in my cordova app. But getFingerprint()
is undefined and only the following methods are available:
getBrowser: function()
getCPU: function()
getDevice: function()
getEngine: function()
getOS: function()
getResult: function()
getUA: function()
setUA: function(a)
Enable reliable script linking from a CDN like https://cdnjs.com/ for easy installation.
rdgdr
You can test with this page, but don't host it on clientjs.org
<!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>Test fingerprint iframe</title>
</head>
<body>
<iframe width="800" height="400" src="http://clientjs.org"></iframe>
</body>
</html>
The Firefox javascript console displays this error
Error: Permission denied to access property "href"
The problem is in swfobject src/vendor/swfobject.js
. Inverting lines 195 and 196 fixes the issue.
Swfobject project seems no longer active, so I post the issue here.
Hi Team,
<title> Finger Print Test</title> <script type="text/javascript" src="https://rawgit.com/jackspirou/clientjs/master/dist/client.min.js"></script> <script> var client = new ClientJS(); console.log("clientjs>>>>>>", client); </script> for above code am getting below error, please let me am I missed any thing. Waiting for reply.client.min.js:39 Uncaught TypeError: Cannot read property 'appendChild' of undefined
45 Kb in total is huge amount as for me for just fingerprinting..
Is there any way to build client.js with only necessary features?
E.g. if I need only parsing user agent, OS and - include only this in result?
Or, maybe, just import necessary features and leave dead code elimination to webpack or other build system...
Hi, clientjs add a testString "mmmmmmmmmmlli" under document, then hidde it. how could I hidde this test string?
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.