authentication - 识别移动应用程序

标签 authentication mobile

是否可以识别(验证)移动应用程序 HTTP 请求? 例如,来自 Web 服务器的请求可以通过域或 IP 来识别,假设我知道它应该来自哪里,我可以接受请求或拒绝它是否来自意外来源。

doe 的移动应用程序具有某种唯一 ID(无法模仿)?

最佳答案

如果您需要从移动应用程序(本地编译应用程序)进行安全的 HTTP 调用(网络服务 API),您可以尝试以下方法:

编辑:此方法假定您不能依赖操作应用程序的用户进行身份验证(因为这样您就可以简单地要求用户在应用程序中输入安全密码)。

  1. 假设您正在实现该应用,请在代码中保存某种 secret API key 。

  2. 当应用通过 HTTP 进行 API 调用时,它将始终使用 HTTPS 完成(因此所有内容都是加密的)。

  3. 应用会将 secret API key 作为 URL 参数发送。

  4. 服务器将通过检查 key 是否正确来进行身份验证。

嗅探应用流量不会泄露 key (因为 HTTPS)。

您最容易受到有人对您的应用进行逆向工程以发现其中的 key 的攻击。这可以通过使用各种混淆和反调试技术变得困难,但不能完全不可能。只要您使用的是编译语言(例如 Objective-C,而不是用于 Web 应用程序的 JS),如果没有任何特殊游戏,这就已经很困难了。如果您避免按原样放置 API key 字符串并在应用中使用一些短代码来计算它,那么发现它的难度就会增加大约 1000 倍。

在不了解您的具体问题的更多信息的情况下,很难提出替代方法。如果您正在寻找不同的东西,请提供更多详细信息。

关于authentication - 识别移动应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14922321/

相关文章:

qt - Qt、QtQuick、QML 和 QtMobility 可以定位的移动操作系统

firebase - 当应用程序处于后台/终止状态并收到 FCM 通知时,如何在 Flutter 中显示本地通知?

jQuery/CSS iPhone - 点击事件

authentication - Powershell中WebClient的身份验证错误

api - 使用 OAuth 和 PEAR Services_Twitter 获取 Twitter 请求 token 时出错

java - Spring中的Websocket身份验证和授权

post - gmail 登录时的 _utf8 POST 参数包含雪人字符

java - J2ME中如何实现线程超时?

authentication - IIS/冷融合 : authentication request on anonymous content

html - 绝对定位标签隐藏在移动 View 中