3

我想开发一个简单的应用程序来测量文本区域中的停留时间和飞行时间(参见http://www.techrepublic.com/article/reduce-multi-factor-authentication-costs-with-behavioral-biometrics/6150761 ) / 盒子。如何使用 keypress() 或 keydown() up() 方法来记录这些事件?

4

3 回答 3

4

我不明白为什么这不值得。仅仅因为可以在客户端修改 Javascript 并不意味着攻击者可以重现实际用户的打字模式。

在客户端执行此操作具有保持用户数据私密性的额外好处(例如,您实际上并没有收集用户的击键,而只是收集与他们的打字模式相关的信息)。

我确信仍然存在隐私问题,但这是一个非常有趣的身份验证(或审计/检测)控制。

于 2012-01-04T20:27:51.040 回答
0

我相信这种方法在现实环境中不会有成效,因为原则上,您在 Javascript 中进行的任何处理都是用户可以通过使用简单的 javascript 调试器或 Firebug 等程序轻松修改的。

也就是说,您可以通过这种方式衡量这两个指标:

  • 停留时间= 和 之间keydown()的时间keyup()。在您的keydown()方法中保存当前时间,并在keyup()计算中将 twell 时间作为当前时间和时间之间的差异keydown()
  • 飞行时间:从您链接的文章的图中,我无法轻松理解它是如何定义的,但我会将其计算为您离开最后一个键(keyup())和开始按下下一个键(keydown())之间的差异。因此,keyup()例如节省时间,last_key_time并将keydown()飞行时间计算为 current_time -last_key_time
于 2011-02-14T16:23:25.630 回答
0

在此处查看示例:http : //jsfiddle.net/VDMPt/source

但正如 Andrea 所说,不值得,因为 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();
});
于 2011-02-14T16:25:53.647 回答