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
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!
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.
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?
I have observed over 3 days, everyday in the same browser the client.getFingerprint() changes.
Is there any way to keep it same everytime
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...
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.
rdgdr
https://github.com/dsmontoya/clientjs/tree/karma-implementation
Specs here are simple, but they work.
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
This is an issue for #31 to close.
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.
Hi, clientjs add a testString "mmmmmmmmmmlli" under document, then hidde it. how could I hidde this test string?
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.
When getting client plugins a flash plugin window briefly flickers onscreen. This is with flash disabled.
Enable reliable script linking from a CDN like https://cdnjs.com/ for easy installation.
I think we are contracting this out to https://www.fiverr.com/.
Remove Minification Bash Script That Uses Google JavaScript Compiler.jar
https://clientjs.org
new ClientJS().getSoftwareVersion()
"ClientJS 0.1.9"
Oficial Release
new ClientJS().getSoftwareVersion()
"ClientJS 0.1.5"
They are generating different fingerprints
:(
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.
Review test quality for stability and reliability.
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...
Develop a standard release process and determine the files and packages present in the project dist
directory.
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
On getFingerprint:
var userAgent = browserData.ua;
this get undefined. Should be changed to:
var userAgent = browserData().ua;
Minified version is of more size than actual. Minified is 44.7 KB and Normal is 25.1 KB
Are there any plans to add HTML5 Geolocation to the list of methods?
var client = new ClientJS();
var fingerprint = client.getFingerprint();
console.log(fingerprint); // fingerprint, change will happen
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)
}
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)
Clientjs library is showing same fingerprint IDs for two different systems connected on same network. How could I resolve this issue?
Increase testing coverage reporting from ~50% to ~75% on Aircover.
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
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 ?
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.
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
is it possible to integrate it with angular2. I am unable to import clientjs as a module.
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.