Простое измерение динамики нажатия клавиш (KD) с помощью JQuery - PullRequest
3 голосов
/ 14 февраля 2011

Я хочу разработать простое приложение для измерения времени задержки и времени полета (см. http://www.techrepublic.com/article/reduce-multi-factor-authentication-costs-with-behavioral-biometrics/6150761) в текстовой области / поле. Как я могу использовать методы keypress () или keydown () up () для записи этихсобытия?

Ответы [ 3 ]

4 голосов
/ 05 января 2012

Я не понимаю, почему это не стоило бы того. Тот факт, что Javascript может быть изменен на стороне клиента, не означает, что злоумышленник может воспроизвести фактические шаблоны печати пользователя.

Выполнение этого на стороне клиента дает дополнительное преимущество, заключающееся в сохранении конфиденциальности данных пользователя (например, вы на самом деле не собираете нажатия клавиш пользователя, а только информацию, относящуюся к их шаблонам набора).

Я уверен, что проблемы конфиденциальности все еще существуют, но это очень интересный контроль аутентификации (или аудита / обнаружения).

0 голосов
/ 14 февраля 2011

См. Пример здесь: http://jsfiddle.net/VDMPt/ источник

Но, как сказала Андреа, оно того не стоит, так как Javascript - на стороне клиента

var xTriggered = 0;
$('#target').keyup(function(event) {
  if (event.keyCode == '13') {
     event.preventDefault();
   }
   xTriggered++;
   var msg = 'Handler for .keyup() called ' + xTriggered + ' time(s).';
  $.print(msg, 'html');
  $.print(event);
});

$('#other').click(function() {
  $('#target').keyup();
});
0 голосов
/ 14 февраля 2011

Я полагаю, что этот подход не будет плодотворным в реальной среде, потому что любая обработка, которую вы делаете в Javascript, в принципе легко модифицируется пользователем с помощью простого отладчика javascript или таких программ, как Firebug.

Тем не менее, вы можете измерить две метрики следующим образом:

  • время задержки = время между keydown() и keyup().В вашем методе keydown() сохраните текущее время, а в keyup() вычислите время twell как разницу между текущим временем и временем keydown().
  • время полета : срисунок статьи, которую вы связали, я не могу легко понять, как она определяется, но я бы вычислил ее как разницу между тем, когда вы оставили последнюю клавишу (keyup()) и когда вы начинаете нажимать следующую клавишу (keydown())).Поэтому в keyup() сохраните время, например last_key_time, а в keydown() вычислите время полета как current_time - last_key_time
...