我想开发一个简单的应用来测量文本区域/框中的停留时间和飞行时间(请参阅http://www.techrepublic.com/article/reduce-multi-factor-authentication-costs-with-behavioral-biometrics/6150761)。如何使用keypress()或keydown()up()方法记录这些事件?
答案 0 :(得分:4)
我不明白为什么这不值得。仅仅因为Javascript可以在客户端修改并不意味着攻击者可以重现实际用户的输入模式。
在客户端执行此操作还有一个额外的好处,即保持用户的数据私密(例如,您实际上并未收集用户的击键,而只是收集与其输入模式相关的信息)。
我确信仍然存在隐私问题,但这是一种非常有趣的身份验证(或审核/检测)控制。
答案 1 :(得分:0)
我相信这种方法在现实环境中不会有成效,因为你在Javascript中所做的任何处理,原则上都可以通过使用简单的javascript调试器或Firebug等程序轻松修改。 / p>
也就是说,你可以用这种方式衡量这两个指标:
keydown()
和keyup()
之间的时间。在keydown()
方法中保存当前时间,并在keyup()
计算twell时间作为当前时间与keydown()
时间之间的差异。keyup()
)时。因此,在keydown()
中保存时间,例如keyup()
,并在last_key_time
中将广告时间计算为current_time - keydown()
答案 2 :(得分:0)
请在此处查看示例:http://jsfiddle.net/VDMPt/ source
但正如安德里亚所说,由于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();
});