16/08/01 19:43:10.31 KkhOhPxO0.net
【従来の仕様】
flrv : User-Agent, ブラウザのPlugin構成, その他に依存
flvv : ブラウザのPlugin構成, その他に依存
【今回新しくなった新仕様】
flrv : その他に依存
flvv : ブラウザのPlugin構成, その他に依存
このUser-Agentはほとんど「自由文字列」である。
またブラウザのPlugin構成についてもその名前とバージョンなどに無数に
組み合わせがあることを考えればこれもほぼ「自由文字列」とみなせる。
「自由文字列」というのは非常に混沌性が高い情報である。
この混沌性を熱力学の言葉を借りて以下ではエントロピーと呼ぶ。
base4.js は今回、このエントロピーの高い二つの要素をflrvからバッサリ切り捨てた。
ではflrvに依存するその他の情報としてあと何が残っているのか?
fingerprint.js を読み解けば分かるが、以下にこれをすべて列挙する。
●navigator.language:
日本語版のブラウザなら ja, ja-jp, ja-JP, ja-JP-mac などの値をとり得る。
システムのロケール設定によっては同じブラウザでもまた別の値になる可能性もある。
●screen.colorDepth:
ピクセルの色ビット深度で 24, 32など。
●Date().getTimezoneOffset:
日本ではかならず-540となる。
●hasSessionStorage:
ブラウザがセッションストレージを持つか否か。
true または false の値をとる。
●hasLocalStorage:
ブラウザがローカルストレージを持つか否か。
true または false の値をとる。
●window.indexedDB:
indexedDBと呼ばれるブラウザ内データベースを持つか否か。
true または false の値をとる。
●document.body.addBehavior:
document.body.addBehaviorが定義されているか否か。
定義されている場合 function、されていない場合 undefined という値になる。
●window.openDatabase:
HTML5におけるopenDatabaseメソッドが定義されているか否か。
定義されている場合 function、されていない場合 undefined という値になる。
●navigator.cpuClass:
システムのCPUの種類を示す文字列。
x86やPPCなどの値を返すとされるが、最近ではこれが空値であるケースも多いようだ。
●navigator.platform:
システムによって
Win32, Win64, Linux i686, Linux x86_64, Linux armv7l, iPhone, MacIntel
などの値をとる。
●doNotTrack:
行動追跡拒否の意思を示す「Do Not Track」(DNT)機能が有効か否か。
例えばFirefoxの場合、プライバシーの設定画面において「トラッキングの拒否をサイトに通知する」に
チェックを入れるとこれが有効になり、この値は 1 となる。
チェックがOFFの場合 unspecified という値となる。
●getCanvasFingerprint():
いわゆるCanvas Fingerprintと呼ばれる値。
HTML5のCanvas APIを使い図形や文字などを描き、次にその結果をPNG画像とし、
最後にそのPNG画像全体のファイルイメージをBASE64エンコーディングした結果がその値となる。