Javascript にてデバイスフィンガープリントを扱う

デバイスフィンガープリントとは

識別を目的としてリモートコンピューティングデバイスのソフトウェアとハードウェアについて収集される情報です。
この情報は通常、フィンガープリントアルゴリズムを用いて簡潔な識別子に統合されます。

とのこと。

Fingerprinting (フィンガープリンティング) - MDN とも呼ばれる。

要約すると、
ユーザーが所持しているPCやスマホの細かい情報をたくさん取得して、
IDを付与する。といったもの。

目的

Google先生の AI によると、

  • 不正アクセス防止
  • オンライン広告のターゲティング
  • ユーザー行動分析

などに使用する。
らしい。

Github で探す

ThumbmarkJS

オープンソース版と有料版がある。
オープンソース版だと精度が少し落ちるみたい。

今回こちらを使う。

FingerprintJS

無料版と有料版がある。
こちらは API の呼び出し数の制限で差別化してるぽい。
スターの数からしてこちらが有名?

ThumbmarkJS を試す

ThumbmarkJS をインストールする。

$ npm install @thumbmarkjs/thumbmarkjs --save

サンプルコード

import { Thumbmark } from "@thumbmarkjs/thumbmarkjs"

// サンプルその1
function test() {
	const tm = new Thumbmark()
	tm.get().then((res) => {
		console.log(res.thumbmark)
	})
}

// サンプルその2
async function test() {
	const tm = new Thumbmark()
	const res = await tm.get()
	console.log(res.thumbmark)
}