使用 JQuery 进行简单的击键动态 (KD) 测量
我想开发一个简单的应用程序来测量停留时间和飞行时间(请参阅http://www.techrepublic.com/article/reduce-multi-factor-authentication-costs-with-behavioral-biometrics/6150761)在文本区域/框中。如何使用 keypress() 或 keydown() up() 方法来记录这些事件?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我不明白为什么这不值得。仅仅因为 JavaScript 可以在客户端进行修改并不意味着攻击者可以重现实际用户的打字模式。
在客户端执行此操作具有保持用户数据私密性的额外好处(例如,您实际上并未收集用户的击键,而仅收集与其打字模式相关的信息)。
我确信仍然存在隐私问题,但这是一个非常有趣的身份验证(或审核/检测)控制。
I don't understand why this would not be worth it. Just because Javascript can be modified on the client side does not mean an attacker could reproduce an actual user's typing patterns.
Doing this on the client side has the added benefit of keeping the user's data private (e.g. you're not actually collecting user's keystrokes, but only information related to their typing patterns).
I'm sure there are still privacy concerns, but this is a very interesting authentication (or auditing/detection) control.
请参阅此处的示例: http://jsfiddle.net/VDMPt/ source
但正如 Andrea 所说,不值得,因为 Javascript 是客户端
See an example here: http://jsfiddle.net/VDMPt/ source
But as Andrea said, is not worth it since Javascript is client side
我相信这种方法在现实环境中不会取得成果,因为原则上,用户在 Javascript 中进行的任何处理都可以通过使用简单的 javascript 调试器或 Firebug 等程序轻松修改。
也就是说,您可以通过以下方式测量这两个指标:
keydown()
和keyup()
之间的时间。在keydown()
方法中保存当前时间,并在keyup()
中计算 twell 时间作为当前时间与keydown()< /代码> 时间。
keyup( )
) 以及当您开始按下一个键 (keydown()
) 时。因此,在keyup()
中保存时间,例如last_key_time
,并在keydown()
中将飞行时间计算为 current_time -last_key_time
I believe this approach would not be fruitful in a real-world environment, because whatever processing you do in Javascript is, in line of principle, easily modifiable by the user, by using a simple javascript debugger or programs like Firebug.
That said, you could measure the two metrics in this way:
keydown()
andkeyup()
. In yourkeydown()
method save the current time and in thekeyup()
compute the twell time as the difference between the current time and thekeydown()
time.keyup()
) and when you start pressing the next key (keydown()
). So inkeyup()
save a time, for instancelast_key_time
, and inkeydown()
compute the flight time as current_time -last_key_time