2017-07-13 14 views
1

トリガークリックが人間によって行われたかどうかを確認できることはよく知られています。mouseEventは人間によって作成されますか?

if(event.originalEvent !== undefined){ alert('human'); } 

ただし、mouseEventが人間またはロボットによって行われたかどうかを確認することは可能ですか?以下のmouseEventの作成例

var mousedownEvent = document.createEvent ("MouseEvent"); 
    mousedownEvent.initMouseEvent ("click", true, true, window, 0, 0, 0, x, y, false, false, false, false, 0, null); 
    element.dispatchEvent(mousedownEvent); 
+0

いいえ、いずれの場合も、同じmouseEventが発生します。 – frozen

+0

はい、幾分厄介ですが、これらのイベントを偽造することはできません人間の相互作用(例えば、フルスクリーン)を必要とするいくつかの機能があります。ユーザーが作成したイベントのみがフルスクリーンにアクセスできるため、フルスクリーン表示が失敗すると、プログラムによってイベントを生成したことがわかります。しかし、もっと良い方法があることを願っています。 – Blindman67

答えて

0

いいえ、少なくとも単にイベントを見るだけではありません。イベントの構造は、生成された方法に関係なく同じです。

ヒューリスティックな方法を適用して、マウスの動きを分析し、それが人間かボットかどうかを判断することができます(ボットは、より一貫性のある完全な直線で移動する可能性が非常に高くなります。わずかなカーブまたはランダム性で動く可能性が高い)。これは実際にGoogleの「Not a Robot」キャプチャがどのように機能するかの一部です。

しかし、そのようなことをすると、ここでの1つの質問の範囲をはるかに上回ります。

+0

次のステップは、ユーザーのマウスの動きを確認することでした。応答ありがとう;) – hRs

関連する問題