HTML+CSSを使用してマウスの動きを追跡する

HTML+CSSを使用してマウスの動きを追跡する

ユーザーがプライバシーを意識するようになり、オンライン トラッキングに対する予防策を強化するにつれて、JavaScript トラッキング スクリプトをブロックするために広告ブロッカーやスクリプト ブロッカーを使用するようになっています。現在、研究者は HTML と CSS を使用して Web サイト訪問者のマウスの動きを追跡し、追跡保護を回避する新しい方法を発見しました。

1 新しい攻撃手法

ほとんどのオンライン トラッキングは、Web サイトや広告に読み込まれる JavaScript スクリプトを通じて行われます。これにより、広告主や Web サイトは、ユーザーがオンラインでどこにアクセスしたか、Web サイトをどのように使用したか、その他のオンライン行動を追跡できます。

これらのスクリプトは、広告ブロッカー、ブラウザのトラッキング保護(Firefox のコンテンツ ブロックなど)、または JavaScript 全体をブロックすることでブロックできます。

Firefox でのコンテンツ ブロック

研究者は、JavaScript を一切使用せず、HTML と CSS のみを使用して Web ページ上の Web サイト訪問者のマウスの動きを追跡する新しい方法を発見しました。これにより、この追跡をブロックすることが非常に困難になります。

セキュリティ研究者のデイビー・ワイビラル氏は、ウェブサイトが HTML と CSS を使用して、あるブラウザ ウィンドウ内のマウスの動きを別のブラウザ ウィンドウで観察する方法を Twitter で実演しました。

Wybiral は、CSS を活用した HTML DIV のグリッドを作成することでこれを実現しました。マウスがグリッド上のボックスの上に移動すると、ホバー セレクターが新しい背景画像を要求できるようになりました。画像リクエストはバックグラウンドで実行されるため、ブラウザは接続が行われていることを示さず、すべてのリクエストはユーザーから隠されます。

HTMLソースコード

ユーザーがボックスの上にマウスを移動して新しい背景画像を要求すると、スクリプトはマウスのホバー位置を記録します。別のブラウザのユーザーは、/watch URL を使用してリアルタイムで監視できます。

この手法は、Web サイト上のホット スポットの特定やユーザー インターフェイスの調査など、さまざまな用途に使用できます。さらに、このテクノロジーを使用して、動的(歩行)分析を実行し、他の訪問者の行動特性に関する洞察を得ることができます。

研究者らはまた、ホバーセレクターに加えて、他のセレクターを使用してブラウザの動作を追跡できるとも述べています。

2 その他のCSSトラッキングテクニック

Wybiral が発見した方法は、CSS と HTML を使用して Web サイトのユーザーを追跡する方法を示す唯一の方法ではありません。

昨年、CrookedStyleSheets と呼ばれるプロジェクトがリリースされました。これにより、Web サイトは画面解像度、使用中のブラウザ、ユーザーがリンクをクリックしたタイミングなどのユーザー情報を収集し、サポートされているフォントに基づいてユーザーが使用しているオペレーティング システムを推測できるようになります。

Wybiral のアプローチと同様に、これはすべて HTML と CSS を使用して行われ、JavaScript は使用されません。

要約する

以上が、HTML + CSS を使用してマウスの動きを追跡する方法についてご紹介しました。お役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信いたします。

<<:  我々は自らの力でIE6を絶滅に追い込んでいる

>>:  jquery+springbootでファイルアップロード機能を実現

推薦する

VSCode と SSH を使用したリモート開発

0. リモート開発が必要な理由組み込み Linux を開発する場合、便宜上、通常は Windows ...

HTMLページの文字セットを指定する2つの方法

1. HTMLページの文字セットを指定する2つの方法方法1: <メタ文字セット="u...

Vueは複数のカウントダウンを同時に設定する機能を実装しています

この記事の例では、複数のカウントダウンを同時に設定するためのVueの具体的なコードを参考までに共有し...

ウェブページのテキストデザインは、服を着た賢い女の子のようであるべきだ

<br />「この世に醜い女性はいない、あるのは怠惰な女性だけだ」これは女性の美のバイブ...

Bootstrap 3.0 学習ノート グリッドシステムの原則

前の 2 つの記事の簡単な紹介を通じて、Bootstrap についての基礎的な理解が得られました。 ...

Mysql5.7 で中国語の文字化けの問題を解決する

MySQL 5.7 を使用すると、Web ターミナル経由でデータベースに中国語の文字を書き込むと文字...

ウェブデザインでは、まずウェブサイトの包括的なイメージの位置付けが必要です。

⑴ 内容によって形式が決まります。まず内容を充実させ、次にブロックに分割し、トーンを決め、最後に細部...

MySQL で '%' を含むフィールドをクエリする方法の詳細な説明 (ESCAPE の使用法)

SQLのlike文では、例えば SELECT * FROM user WHERE username...

SQL と MySQL のステートメント実行順序の分析

今日、問題が発生しました: MySQL の insert into、update、delete ステ...

Dockerパッケージイメージの実装と構成の変更

最近、Docker の学習や実際の運用で多くの問題に遭遇したので、それを記録するためにブログを書きま...

Nginx リバース プロキシ構成の完全なプロセス記録

1. 準備LinuxシステムにTomcatをインストールし、デフォルトのポート8080を使用してTo...

JavaScript で H5 ゴールド コイン関数を実装する (サンプル コード)

今日は春節の金貨の赤い封筒のアクティビティを作りました。なかなか良い出来だと思います。皆さんと共有し...

jQueryはシンプルなボタンの色の変更を実装します

HTML と CSS で、ボタンの色を設定したいとします。 目的の効果は得られますが、プロセスはかな...

MySQL での order by の使用に関する詳細

目次1. はじめに2. 本文2.1 単一列のソート2.2 複数の列を並べ替える2.3 ソート方法2....

Vueはページの部分的なリフレッシュを実装します(ルータビューのページリフレッシュ)

Vue でprovide+inject組み合わせを使用するまず、App.vue を変更する必要があ...