检测用户是否从与平常不同的设备登录的最可靠方法是什么?

2024-04-04

我怀疑我们都熟悉 facebook 和 google 等如何检测您是否使用与平常不同的设备,我想知道最可靠的方法是什么?

我说的是旧的“看起来您正在从不同的设备登录”,然后当您确认等时,它通常会向您发送一封电子邮件并询问您是否要信任该设备。

显然,人们可以设置一个 cookie,每次访问时都可能会检查并记录该 cookie,但是当用户退出时呢?我们保留cookie吗?

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


检测设备更改的最可靠方法是创建指纹 https://en.wikipedia.org/wiki/Device_fingerprint运行浏览器的浏览器/设备的名称。这是一个复杂的话题,需要 100% 正确,而且有些商业产品非常好,但并非完美无缺。几年前我曾在其中一家公司工作过。

现在至少有一个开源指纹识别项目客户端JS http://clientjs.jacks.io/。我没有使用过它,但它似乎涵盖了基础。

仅设置 cookie 并不是很可靠,因为用户平均大约每 30-45 天清除一次 cookie,除非您使用尝试重新设置 cookie 的网络(付费服务)。即使这些也并非完美无缺。

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

UPDATE

关于您的类似哈希码的想法。

这是一个复杂的话题。我有一个小团队几年了。我们做得非常好,但即使人们不是故意欺骗你,你也永远不可能 100% 准确。

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检测用户是否从与平常不同的设备登录的最可靠方法是什么? 的相关文章

  • 使用 WatiN 获取设置的 cookie 列表

    有没有办法使用 WatiN 获取网站设置的所有 cookie 列表 WatiN 中的 IE 浏览器类提供了GetCookie方法允许您检索特定的 cookie 但我想迭代所有已设置的 cookie 有两种方法可以让您获取 cookie Co
  • 处理 PHP 中的会话劫持

    阅读了 Stackoverflow 上有关会话劫持的许多问题 我发现验证用户会话的唯一 解决方案 是检查用户代理 这是一个薄弱的保护层 我什至懒得去检查实施它 所以 我想知道你们实施了哪些解决方案 您是否使用 PHP 的本机会话或者是否有更
  • 最好的通用摘要函数?

    在 2009 年编写一个普通的新应用程序时 就安全性和性能而言 最合理的摘要函数是什么 随着情况的变化 我如何在未来确定这一点 When similar https stackoverflow com questions 116684 wh
  • 我应该如何合乎道德地处理用户密码存储以便以后进行明文检索?

    Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 随着我继续构建越来越多的网站和 Web 应用程序 我经常被要求以某种方式存储用户的密码 以便在
  • 如何设置 php cookie 的过期时间以及如果 cookie 存在如何将用户重定向到另一个页面 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我希望当用户来到我的页面时index php 它应该创建一个带有过期时间的 cookie 如果用户在 5 分钟内再次尝试访问该页面 他应该
  • 创建连接到 facebook 的 j2me 应用程序(不是 swt 项目)

    我想创建一个简单的 j2me 应用程序作为开始 它与 facebook 链接 为了这 我从下载了 facebook apihttp kenai com projects facebookapime downloads http kenai
  • 使用鼠标检测的反验证码

    我想知道是否可以为仅使用 javascript 的表单创建一个安全的人体检测机制 不使用验证码 来检测鼠标移动 因为 jquery 或操作系统代码都可以移动鼠标 我是这么告诉的 这是我的计划 使用 jQuery 我可以检测鼠标是否已移动 然
  • 确定用于映射网络驱动器的域和用户名

    使用带有 SP1 的 Windows 7 Enterprise 但我希望得到适用于 Windows XP 2003 2008 Vista 7 的通用答案 从命令提示符处 我执行net use命令将 Z 驱动器映射到另一台计算机上的共享 但我
  • Firebase GAS webapp Google 弹出窗口消失

    我正在尝试升级我的 firebase GAS web 应用程序 之前我有一个弹出窗口 可以让用户使用 Google 登录 我不确定我做错了什么 但我已经升级到新的 firebase 现在正在尝试使用新的代码格式进行相同的登录 发生的情况是
  • 在 React Native 应用程序中哪里可以获取 EXPO DEBUG 值?

    当我尝试登录 expo 时出现此错误 exp Set EXPO DEBUG true in your env to view the stack trace 你知道我到底要在哪里设置值吗EXPO DEBUG EXPO DEBUG是一个环境变
  • 使用 Django REST 框架进行 SAML SSO 身份验证

    我目前正在开发 AngularJS 前端和 Django REST 后端 我一直在使用Django rest auth https github com Tivix django rest auth过去需要对两者之间的连接进行身份验证 但现
  • Docker Hub API v2 令牌身份验证问题

    目前 我正在开发一个非常轻量级版本的 Docker 容器编排器 并且我必须能够从公共 Docker Hub 注册表获取图像摘要 我想使用 Docker Registry API v2 来实现此目的 我正在尝试使用以下 API 调用获取授权令
  • 遭受xss攻击后如何恢复站点?

    最近我正在研究XSS攻击以及它们对网站的破坏性有多大 让我惊讶的是 网络 even SO 充满了关于如何防止xss攻击但没有相关资源说明如何在网站受到 xss 攻击后恢复网站 我遇到过一些事情 比如 将备份网站代码上传回服务器 下载整个网站
  • 生产环境的 Flask-Login 与 Flask-Security

    我正在构建一个功能 供用户注册 登录 验证和授权自己 特别是使用 Python Flask 作为后端 我找到了一些解决方案 例如flask login and flask security 据我了解 flask login实际上并没有进行任
  • 使用 jquery 通配符检查 cookie 名称

    我有一个生成动态 cookie 的表单 例如 webform 62 1234356 62 1234356 可以是任意数字 我需要使用一些通配符检查来检查名称以 webform 开头的 cookie 是否存在 下面不起作用 if cookie
  • iOS 中如何清除特定域的 cookie?

    我已经搜索了 StackOverflow 上的几乎所有问题来寻找我的问题的答案 我还没有找到任何有用的链接或教程来说明哪种方式最好清除特定域的 cookie 如果有人可以帮助我 请 我自己找到了解决方案 如果您想删除 UIWebView 中
  • Python PAM 模块的安全问题?

    我有兴趣编写一个 PAM 模块 该模块将利用流行的 Unix 登录身份验证机制 我过去的大部分编程经验都是使用 Python 进行的 并且我正在交互的系统已经有一个 Python API 我用谷歌搜索发现pam python http pa
  • setcookie with expire=0 浏览器关闭后不会过期

    我使用setcookie来制作一个过期 0的cookie 从 PHP 文档来看 link http php net manual en function setcookie php cookie 过期的时间 这是一个 Unix 时间戳 所以
  • Flask 会话变量

    我正在用 Flask 编写一个小型网络应用程序 当两个用户 在同一网络下 尝试使用应用程序时 我遇到会话变量问题 这是代码 import os from flask import Flask request render template
  • 我必须使用什么加密程序来通过 HTTP 协议发送加密的“电子邮件”和“密码”值?

    我正在使用 Ruby on Rails 3 我想通过 HTTP 协议发送 电子邮件 和 密码 值 我知道 我不应该 但我需要 我需要从发送用户凭据我的客户申请到一个我的服务应用 我可以使用公共和私人RSA密钥来实现这一点 但如果是这样 我不

随机推荐