A JS fingerprint is calculated in client side using a library like fingerprint2.
My question is, If i send this value through ajax, the user can fake this value with a minor effort, and just make a fake post request that will be interpreted by server code like legit.
My question is, if this can happen, this library can be easily bypassed without even change any property in browser (that will change the browser fingerprint).
My interpretation is right? How can i ensure the integrity of that value?
Device fingerprints help to prevent and identify bank or credit card fraud. Device IDs are unique, so it is possible to identify a device involved in a deceitful transaction. A transaction made from the same device can be tracked even if they use a fake IP address, a proxy, or a different credit card.
Device fingerprinting analyzes users' configurations of software and hardware. It creates a unique ID for each configuration, in order to recognize connections between users and to highlight suspicious devices.
Browser User-Agent User agents are obvious fingerprints of your system. The browser user-agent is intended to facilitate end-user interaction with web content, and it is part of the request header that contains more information, such as the accepted language and accepted text/html.
Also known as online fingerprinting, browser fingerprinting is a tracking and identification method websites use to associate individual browsing sessions with one site visitor. Using Javascript, a plethora of data can be collected about a user's web browser and device.
You can't, and I wouldn't really worry about it.
Rule number 1: All input coming from the users computer can be faked and can't be relied on 100%.
If you want you can double with with serverside fingerprinting with libraries as piwik device detector to match up data, but you're giving yourself a headache without cause.
90% of the users visiting you, will not have a clue what you are doing and provide you with reliable data. They won't even have an adblock. They will give you reliable data.
9% of the visitors might have an adblocker, which may or may not block those ajax requests. They wish you to respect their privacy, do that so you keep them as customers. 1% might know what those ajax requests do, but they'll never find out because they can't be bothered to inspect the console of every website their visit. 1% of that 1% might take a peek at the browser console and figure out the browser finger printing.
1% of that 1% of that 1% will steal your fingerprinting code. another 1% of the 1% of the 1% will try to fake it just for the lulz and then forget about it.
So in short, don't bother. people won't bother either.
But if you really must bother, and give yourself a headache:
gotcha.js?time=1283737273873
use serverside scripting again to intercept. You can then use ajax to update the contents of the page.Other than that, I really can recommend you: don't bother. it's not worth the effort. people who want to circumvent will circumvent. they'll disable javascript, exclude that script, erase all cookies before continuing or leaving the site, change registered fonts plugins, etc... Don't chase those that don't wish to be chased. Focus on the group who doesn't care.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With