如何使用 UDID 或设备令牌进行安全登录?

2023-12-13

所以我正在制作一个应用程序,我希望用户能够添加、编辑和评价内容,但我不想强迫他们注册。相反,我计划仅使用他们的设备 ID 或设备令牌来识别他们。我计划同时制作 iPhone 和 Android 版本,因此我正在寻找通用解决方案,但 iPhone 版本具有更高的优先级,因此也欢迎 iPhone 特定的解决方案。

问题是我不希望任何人都能够通过发送虚假设备 ID 或其他人的设备 ID 来使用我的 Web 服务。

客户端如何向服务器证明它提供了正确的设备 ID?


从理论上讲,你不能。设备 ID 并不是特别保密,在大多数情况下,它很容易被欺骗。至于 Android,该操作系统上根本没有可靠的设备 ID - 请参阅此处的血淋淋的详细信息:Android 设备有唯一的 ID 吗?

您所能依赖的就是默默无闻的安全性——希望没有人有足够的决心对代码进行逆向工程并分析身份验证协议。并且不公开代码也不是一种选择 - 毕竟您正在分发该应用程序。

也就是说,一种不是特别安全的身份验证方法是 - 发送设备 ID 以及与硬编码在客户端代码字符串(共享密钥)中的秘密连接的设备 ID 的哈希值。该服务将包含密钥的副本,重新计算哈希值(使用提供的设备 ID)并匹配哈希值。协议分析无法破解,只能通过挖掘代码来获取秘密。但容易受到重放攻击。请随意混淆代码中的秘密 - e。 G。使用前将其与存放在不同位置的部件组合在一起。

要获得更强大的解决方案,请对用户进行身份验证,而不是对设备进行身份验证。这取决于您的客户,并且取决于业务的性质。

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

如何使用 UDID 或设备令牌进行安全登录? 的相关文章

  • RxJava、Proguard 和 sun.misc.Unsafe

    我有以下问题RxJava 1 1 0 使用时Proguard 我没有更改 RxJava 版本或其 pro文件 但更新后OkHttp我无法编译使用Proguard因为我有关于sun misc Unsafe不在场 rxJava pro keep
  • 接近语法错误(代码1)插入Android SQLite

    我正在创建一个通讯录应用程序 用户可以在其中输入姓名 电子邮件地址和号码 我希望将此数据保存在数据库中 但我似乎无法使插入方法起作用 我收到的错误是 android database sqlite SQLiteException near
  • 在 Google Analytics 中跟踪应用程序版本

    我正在使用谷歌分析模块 https marketplace appcelerator com apps 5081 2014113336 https marketplace appcelerator com apps 5081 2014113
  • 线程自动利用多个CPU核心?

    假设我的应用程序运行 2 个线程 例如渲染线程和游戏更新线程 如果它在具有多核 CPU 当今典型 的移动设备上运行 我是否可以期望线程在可能的情况下自动分配给不同的核心 我知道底层操作系统内核 Android linux内核 决定调度 我的
  • Android Studio 在编译时未检测到支持库

    由于 Android Studio 将成为 Android 开发的默认 IDE 因此我决定将现有项目迁移到 Android studio 中 项目结构似乎不同 我的项目中的文件夹层次结构如下 Complete Project gt idea
  • 在意图过滤器中使用多个操作时的默认值

    尝试理解 Android 中的意图和操作并查看文档 http developer android com guide topics intents intents filters html 但我一直看到的一件事是定义了多个操作的意图过滤器
  • 如何查找 Android 设备中的所有文件并将它们放入列表中?

    我正在寻求帮助来列出 Android 外部存储设备中的所有文件 我想查找所有文件夹 包括主文件夹的子文件夹 有办法吗 我已经做了一个基本的工作 但我仍然没有得到想要的结果 这不起作用 这是我的代码 File files array file
  • 已经使用 AsyncTask doInBackground 但新数据未显示

    我使用 AsyncTask 创建一个聊天室来接收消息 因此它总是检查即将到来的消息并将其显示给客户端 但代码似乎无法按我希望的方式工作 在客户端只显示所有旧数据 新数据不显示 因为当我尝试从服务器发送消息时 新数据没有显示在客户端中 我对这
  • Android 版 Robotium - solo.searchText () 不起作用

    我在使用 Robotium 时遇到 searchText 函数问题 我正在寻找这个字符串
  • ROOM迁移过程中如何处理索引信息

    CODE Entity tableName UserRepo indices Index value id unique true public class GitHubRepo PrimaryKey autoGenerate true p
  • 材质设计图标颜色

    应该是哪种颜色 暗 材质图标 在官方文档上 https www google com design spec style icons html icons system icons https www google com design s
  • 如何创建像谷歌位置历史记录一样的Android时间轴视图?

    我想设计像谷歌位置历史这样的用户界面 我必须为我正在使用的应用程序复制此 UIRecyclerView 每行都是水平的LinearLayout其中包含右侧的图标 线条和视图 该线是一个FrameLayout具有圆形背景和半透明圆圈Views
  • NSURL URLWithString:引发异常

    简而言之 NSURL URLWithString 似乎引发了一个例外 根据文档 如果字符串格式错误 则返回 nil 没有提到在任何情况下都会引发异常 除此之外 我还对 URL 进行编码并检查nil在将字符串转换为 URL 之前 任何人都可以
  • GMSMapView 中的倒多边形

    我必须在我的 iPhone 项目中使用 Google 地图 并且我正在使用 GMSPolygon 来绘制多边形 但是如何填充地图上除多边形内部之外的所有位置 就像下图一样 谢谢 我玩过你的问题 主要思想是用多边形填充整个地球 然后为您的特定
  • Android - 将 ImageView 保存到具有全分辨率图像的文件

    我将图像放入 ImageView 中 并实现了多点触控来调整 ImageView 中的图像大小和移动图像 现在我需要将调整大小的图像保存到图像文件中 我已经尝试过 getDrawingCache 但该图像具有 ImageView 的大小 我
  • 使用 Espresso 检查 EditText 的字体大小、高度和宽度

    如何使用 Espresso 检查 EditText 的字体大小 高度和宽度 目前要分割我使用的文本 onView withId R id editText1 perform clearText typeText Amr 并阅读文本 onVi
  • 有什么方法可以让我知道按屏幕的力度有多大

    我想找到触摸的压力 我只是不知道如何在不越狱并获取原始触摸数据的情况下实现该结果 有谁知道我会怎么做 你无法获得来自SDK的压力nor未记录的方法 然而你can使用未记录的方法检测触摸的大小 在 GSEvent UIEvent 的较低级别表
  • 在 Android 中,如何将字符串从 Activity 传递到 Service?

    任何人都可以告诉如何将字符串或整数从活动传递到服务 我试图传递一个整数 setpossition 4 但它不需要 启动时总是需要 0 Service 我不知道为什么我不能通过使用 Service 实例从 Activity 进行操作 publ
  • 无法将 admob 与 firebase iOS/Android 项目链接

    我有两个帐户 A 和 B A 是在 Firebase 上托管 iOS Android unity 手机游戏的主帐户 B 用于将 admob 集成到 iOS Android 手机游戏中 我在尝试将 admob 分析链接到 Firebase 项
  • 在 Google 地图上绘制线条/路径

    我很长一段时间都在忙于寻找如何在 HelloMapView 中的地图上的两个 GPS 点之间画一条线 但没有运气 谁能告诉我该怎么做 假设我使用扩展 MapView 的 HelloMapView 我需要使用叠加层吗 如果是这样 我是否必须重

随机推荐

  • UITableView滑动删除不确认

    关于 UITableView 中滑动删除功能的快速问题 有没有办法直接删除行而不显示 删除 按钮并等待用户确认 实现您的自定义 UITableViewCell 并利用UISwipe手势识别器 您必须自己编写所有逻辑 协议 委托等 但您将可以
  • 簇块异常

    我使用清晰的语言来构建我的聊天机器人 https github com samtecspg 铰接 当我执行时出现以下错误docker compose up api 1 api 1 usr src app server index js 33
  • 断言错误:302!= 200

    我尝试在我的tests py中创建一个测试 class TaskViewTests TestCase def test task view with no task self If no task exist an appropriate
  • SQL Server 2008 中的小时和分钟总和

    我写了一个查询 但它没有给出正确的答案 我想像这样显示 5小时58分钟 7小时58分钟 13小时56分钟 答案应该13 56 但是下面的查询给出15 09 请回复我任何其他解决方案 这里Effort1是 5 小时专栏 Effort1Minu
  • 基于列名称模式的多个成对差异

    我有一个data table dt dt Id v1 v2 v3 x1 x2 x3 1 7 1 3 5 6 8 2 1 3 5 6 8 5 3 3 5 6 8 5 1 v1 v2 v3 和 x1 x2 x3 是数值变量 我想从 v 列中减去
  • Flutter 的 pubspec.yaml 中依赖版本号之前的插入符号 (^) 是什么?

    In the pubspec yaml我的 Flutter 项目的文件中有一个插入符号 位于某些依赖项的版本号之前 dependencies flutter sdk flutter cupertino icons 0 1 2 english
  • JavaScript 中的 new String("x") 有什么意义?

    有哪些用例new String already a string 它的全部意义是什么 实际用途很少String创建的对象new String foo 唯一的优点是String对象比原始字符串值更重要的是 作为一个对象 它可以存储属性 var
  • 中的“status”有什么作用?

    我正在使用以下命令来显示 userList 中的值
  • 如何验证使用 Struts2 JSON 插件发送的 JSON 而不引发异常

    假设有一个Double操作中的变量 并且如果请求正文中发送的值类似于 dblField and the interceptorStack好像
  • 将十六进制转换为 RGBA

    我的小提琴 http jsbin com pitu 1 edit 我想尝试一个简单的十六进制到 RGBA 的转换 我使用过的浏览器默认使用 rgb 渲染颜色 因此当使用 farbtastic 颜色选择器时 我通过抓取十六进制值生成的背景颜色
  • 使用 RegEx(notepad++) 删除重复的字符串/单词(不是行)

    我想知道一种使用 notepad 正则表达式查找工具删除文本文件 而不是行 中重复单词或字符串的方法 我只看到了使用 TextFx 删除重复行的方法 但这不是我想要的 例子 123 789 123 321 删除 123 将导致 123 78
  • 如何在webrtc中的canvas流上添加音频流

    我想将通过 getusermedia 获得的音频流添加到画布流并将其发送到远程对等点 于是我抬头一看 有addTrack 但addTrack 似乎不能正常工作 我在 chrome 上运行 var audioTracks navigator
  • 每像素碰撞 - 代码解释

    我目前正在尝试了解每像素碰撞检测 这是我不明白的代码 static bool IntersectPixels Rectangle rectangleA Color dataA Rectangle rectangleB Color dataB
  • Microsoft Office Excel 无法访问文件“c:\inetpub\wwwroot\Timesheet\App_Data\Template.xlsx”

    我的代码如下 Microsoft Office Interop Excel Application oXL null Microsoft Office Interop Excel Sheets sheets Application exce
  • 奇数按降序排列,偶数按升序排列

    给定一个随机整数数组 将奇数元素按降序排序 偶数元素按升序排序 输入示例 1 4 5 2 3 6 7 Output 7 5 3 1 2 4 6 针对时间复杂度进行优化 它是哪种语言 C 或 C 我看到两个标签 在 C 中 您可以使用std
  • 这是 async-await 如何工作的正确图表吗?

    我将尝试就以下问题发表演讲async await我正在创建一个流程图 试图显示可能的执行顺序 我试图根据这些段落来确定这一点 异步方法的开头就像任何其他方法一样执行 方法 也就是说 它同步运行 直到遇到 等待 或 抛出异常 await 关键
  • 为什么我在 JavaScript 中点击按钮后该值显示然后又消失?

    每当我单击按钮时 我都会在文本字段 结果 中得到一秒钟的输出 然后它就消失了 为什么它消失了 我试图将该功能放在身体中 它没有帮助
  • 对 pthread 互斥体涉及的完整内存屏障的澄清

    我听说在处理互斥锁时 必要的内存屏障是由 pthread API 本身处理的 我想了解有关此事的更多细节 这些说法是真的吗 至少在最常见的架构上是这样吗 编译器是否能够识别这种隐式屏障 并在生成代码时避免对操作 从本地寄存器读取进行重新排序
  • mysqldump 没有数据库名称

    是否可以以 xml 格式转储数据 而输出中不包含数据库名称 如果我使用 xml 选项转储这样的输出 gt mysqldump xml my database name my table gt my table xml 然后我的输出是这样的
  • 如何使用 UDID 或设备令牌进行安全登录?

    所以我正在制作一个应用程序 我希望用户能够添加 编辑和评价内容 但我不想强迫他们注册 相反 我计划仅使用他们的设备 ID 或设备令牌来识别他们 我计划同时制作 iPhone 和 Android 版本 因此我正在寻找通用解决方案 但 iPho