检测用户是否从通常的其他设备登录的最可靠方法是什么?

Har*_*air 5 browser security authentication cookies

我怀疑我们都熟悉facebook和谷歌之类的东西,如果你使用的是不同的设备,我会想知道最可靠的方法是什么?

我在谈论旧的'看起来你是从另一台设备登录',然后当你确认等时,它通常会向你发送一封电子邮件,询问你是否要信任这个设备.

显然,人们可以设置一个cookie,一个可能会被检查并记录每次访问的cookie,但是当用户注销时呢?我们保留饼干吗?

除了设置cookie之外,还有其他可靠的方法来"信任""设备"吗?或者这是最好/最可靠的方法吗?

Eri*_* J. 6

检测设备更改的最可靠方法是创建运行浏览器的浏览器/设备的指纹.这是一个复杂的主题,100%正确,并有一些非常好但不完美的商业产品.几年前我在其中一家公司工作过.

现在至少有一个开源指纹项目Client JS.我没有用它,但似乎覆盖了基础.

设置cookie并不是非常可靠,因为除非您使用试图重新设置cookie的网络(付费服务),否则普通用户每隔30-45天就会清除一次cookie.即使那些也没有完美无缺.

只使用IP地址是没用的.有些设备在短时间内合法拥有许多IP(家中的笔记本电脑,工作和星巴克或大多数移动设备),而有时单个IP由大量用户共享(星巴克的所有人或公司后面的人)代理服务器).

UPDATE

关于你的类似哈希码的想法.

要做到这一点,这是一个复杂的话题.我有一个小团队几年.我们相当不错,但即使人们没有故意欺骗你,你仍然无法100%准确.

  • 如果CPU发生变化,它可能是一个不同的设备.
  • 相同的物理设备可以有许多用户代理.设备上的每个浏览器具有不同的用户代理,并且浏览器的隐私模式具有不同的用户代理,具有少得多的熵.
  • 对于给定的物理设备,字体不会很快变化,尽管它不是移动设备上很好的熵源(安装的字体很少,对于给定类型的设备通常都是相同的字体).
  • 操作系统通常是稳定的,直到它突然改变.在您的情况下,如果每台设备在更新到Windows 10时都显示为新设备,这是否重要?
  • 颜色深度将非常稳定.如果用户安装新的图形卡,则可能会更改.在你的情况下这有关系吗?

如果您可以接受某些设备是新的,实际上它们是相同的,反之亦然,这种类型的相似性哈希可能对您有用.请注意,您永远不能使用此类指纹来唯一标识设备,以达到需要正面识别的目的,例如访问安全数据.它非常适合做出概率性决策,例如投放适当的广告.