我正在努力提高web应用程序的安全性。这个应用程序有一个管理站点,键盘记录器是我想要解决的一个问题。应用程序能做一些可以阻止键盘记录器正常工作的事情吗?我读过有关击键干扰软件的文章(对于每一个用户击键,他们都会随机添加更多的击键而不干扰用户的输入),在javascript中可以这样做吗?
发布于 2016-03-30 12:01:19
许多应用程序使用复杂(且繁琐)的密码输入方法来阻止键盘记录器和间谍软件的尝试都是徒劳的。没有一个是针对键盘记录器的,许多实际上会降低用户的安全性,因为它们使得使用密码管理器变得很困难。
处理这类事情的最好方法是使用一次性密码。有几种方法可以这样做,所以让我建议两种方法: TOTP (RFC 6238)与许多软件验证器(例如,谷歌身份验证器)一起工作,因此它既方便,实现成本低,又免费使用。不过,它确实需要用户设置并拥有一部智能手机。
另一种方法是通过短信发送一个一次性密码。这有点贵(因为你必须发送消息),但对用户来说也更容易(用户只需要手机而不需要安装)。
发布于 2016-03-30 19:39:52
如果您单独处理键盘记录器,则可能会降低风险(例如使用屏幕上的键盘、2FA或类似的),但是如果攻击者有能力在系统上安装击键记录器,则很有可能(除了物理击键记录器之外)他们有特权访问所涉系统,因此很可能会规避您设置的任何其他保护(假设他们有动机这样做)。
例如,由于这是一个web应用程序,假设您实现了2FA,一旦用户通过了身份验证,会话令牌就会被保存,然后通常保持有效,直到出现空闲超时或用户显式注销为止。如果攻击者拥有对系统的特权访问权限,他们就有可能发出“保持活动”请求,以防止空闲锁定,并使用浏览器注入来击败注销。
如果您担心用户从受影响的客户端访问特权系统,更好的解决方案是使用专用/锁定设备,并仅限制对这些设备的访问。
https://security.stackexchange.com/questions/118988
复制相似问题