ホームページ >ウェブフロントエンド >jsチュートリアル >IE のセキュリティ バグについて - ユーザーのシステム マウスの位置_JavaScript スキルを追跡するために使用できます。

IE のセキュリティ バグについて - ユーザーのシステム マウスの位置_JavaScript スキルを追跡するために使用できます。

WBOY
WBOYオリジナル
2016-05-16 17:36:50788ブラウズ

IE の DHTML には、すでによく知られているさまざまな MS$ プライベート機能があります。より興味深いものの 1 つは、システムレベルのマウス位置座標を取得できるevent.screenX およびevent.screenY です。

最初にそれを聞いたとき、実際には何でもないと思いました。画面上の座標は、ブラウザのクライアント領域の座標、ブラウザ ウィンドウの座標、クライアント領域のオフセットにすぎません。

IE 自体は、イベントや画面オブジェクトを通じて、画面やウィンドウの位置に関連するさまざまな情報を取得できます。

しかし、本当に奇妙なことはまだ始まっていません!標準の DOM モデル定義によれば、 はイベントがトリガーされたときにイベントからイベントに関連するパラメーターのみを取得できます。

つまり、mousemove がトリガーされ、mouseXXX マウス イベントがトリガーされた場合にのみ、マウス関連のパラメーターを取得できます。ただし、邪悪な IE では、ページが最小化されている場合でも、任意のイベントがトリガーされた後、event.screenX とevent.screenY を取得できます。

もちろん、これはまだイベントに依存する必要があると言うかもしれません。ただし、ここでのイベントは、onxxx などの任意のコールバック関数にすることができ、UI イベントに限定されません。 つまり、人工的に作り出すことができるのです!

最も簡単な例は、新しいイメージに無効な src を設定することです。その場合、onerror イベントがすぐにトリガーされます。

したがって、onerror でevent.screenX を取得し、無効な src を設定し続けることができるため、ユーザーの画面レベルのマウス ポインターをリアルタイムで追跡できます。 onerror の生成は UI メッセージに限定されないため、ページが最小化されているか非アクティブな場合でもイベントがトリガーされる可能性があります。

マウスやキーボードのどのキーが押されたのかを取得できるかというと、残念ながら実際には取得できません。グローバルなキーストロークをキャプチャすれば、パスワード入力を監視することは可能ではないでしょうか? 。 。

実際、onerror などの非 UI イベントがトリガーされた場合、マウスやキーボードのパラメーターはブラウザーのフォームにまったく渡されないため、さまざまなマウスやキーボードの情報を取得できません。 events.screenX については、これがイベントの GetCursorPos が内部的に直接呼び出され、この属性を提供するイベントのトリガーではないということが唯一の説明です。

ページにそのようなトラッキング コードが埋め込まれており、その座標がソケット.io を介してリアルタイムで送信されたら興味深いと思いませんか。 。 。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。