![]() |
1
0
正如@jake已经指出的,你应该使用一个只绑定到用户的令牌,而不是所有用户的Api密钥,但是在执行http请求时,可以做其他增强来进一步保护你的应用程序。 用户令牌可以是签名的JWT令牌,然后您可以通过证书固定增强服务器和应用程序之间通信的安全性,以防止中间人攻击。 here . can be bypassed 通过挂钩框架,如 Xposed 包含特定于绕过锁定的模块,但还有另一层安全性,一旦它增加了在设备上破解应用程序所需的工作量,并且将保护应用程序免受中间人攻击,您就不应放弃它。 为了确保应用程序和后端之间的最终安全,您应该使用应用程序完整性证明服务,该服务将通过使用集成在应用程序中的SDK和在云中运行的服务,在运行时保证您的应用程序未被篡改或未在根设备中运行。 在成功证明应用完整性时,将发布JWT令牌,并使用只有您的应用后端和云中的证明服务知道的秘密进行签名;在失败时,将使用应用后端不知道的假秘密对JWT进行签名,从而允许应用后端仅在能够验证的情况下为请求提供服务JWT令牌中的签名,并在验证失败时拒绝它们。 一旦云认证服务使用的秘密不为应用程序所知,就不可能在运行时对其进行反向工程,即使应用程序被篡改、在根设备中运行或通过作为中间人攻击目标的连接进行通信。 你可以在网上找到这样的服务 Approov 包括IOS在内的多个平台都有SDK。集成还需要在应用程序后端代码中进行一次小检查,以验证JWT令牌,以便后端能够保护自己免受欺诈性使用。
|
![]() |
2
0
更安全的机制是在登录时返回身份验证令牌。此身份验证令牌对于用户应该是唯一的。如果您在后端有适当的授权和安全机制(以减轻DDOS攻击、注入攻击、用户访问其他用户数据等),那么谁会关心他们是否从密钥链或存储在何处获得授权令牌?由于身份验证令牌绑定到他们的帐户,因此您可以使令牌失效,以便在用户恶意时停止工作。如果你在后台有正确的机制,你甚至可以完全禁用他们的帐户。 许多安全机制可以在后端实现自动化。像AWS这样的平台可以很容易地配置为自动禁用对后端进行某些恶意调用的帐户。 |