gpt4 book ai didi

android - 应用程序中 bundle 的 API key 和 secret 的最佳实践

转载 作者:可可西里 更新时间:2023-11-01 04:41:02 25 4
gpt4 key购买 nike

我正在开发一个应用程序,它将使用短信来验证用户的电话号码,这是通常的“输入代码”例程。

稍微阅读后,为我将在应用程序中使用的任何第 3 方(twilio、nexmo 等)存储私钥似乎不是一个好主意。有人可以从我的二进制文件中对这些进行逆向工程,然后在他们的应用程序中使用它们。

但是,将这些放在服务器上也无济于事,有人可以对我用来发送文本消息的服务器端点进行逆向工程,然后改用它。

例如我可以对 WhatsApp 进行逆向工程并获取他们用于电话号码验证的私钥或 API 端点,然后将其用于我的应用程序,从而为我节省数千美元。

关于如何保护自己免受此类攻击的任何想法?

最佳答案

在服务器上隐藏 API key

However, having these on the server doesn't help either, somebody could just reverse engineer my server's endpoint that I use to send text messages and use that instead.

是的,它确实有很大帮助。

如果有人可以访问您的网络服务的 key ,他们只能做您的服务允许他们做的事情。拥有一个封装所有 3d 方 key 和 API 的 Web 服务是一个非常好的主意 - 它更安全。

没有人可以访问您的敏感 key ,这将允许他们做一切

例如,第 3 方 API 允许删除 - 您的服务器包装器 API 不允许。

此外,您可以为可疑行为添加任何额外的逻辑或警报。

在应用中隐藏 API key

如果有人下定决心,您将无法阻止从您的应用中对您的 key 进行逆向工程。你只能让它变得更难。 计算机安全永远不应该是关于“做起来有多难/有多复杂”,但在这种情况下我们别无选择。

好的,所以您必须将 API key 硬编码到您的源文件中。它可以很容易地进行逆向工程。

您可以混淆您的 key ,这样就无法直接读取它们。结果将是它们分散在一个编译文件中,而不是舒适地放在一个地方。

在 iOS 上你可以使用一些东西 like this.

在 Android 上你可以使用 DexGuard ,或任何其他混淆字符串的方法。

加密 key

让黑客难以上手的另一层是加密 key 。

Here's an example for iOS.

您可以对 Android 执行相同的操作。

完美场景

好的,假设您有一个用于视频管理的第 3 方 API。

黑客想要删除服务器上的所有视频,因为 3rd API 允许这样做。

首先,他必须将文件中所有分散的字符串粘在一起。如果他设法做到这一点,他就必须找到一种方法来解密。

即使他设法解密,那也会给他您服务器的 API key ,而您的服务器和您的服务器只允许上传视频,不能删除它们。

关于android - 应用程序中 bundle 的 API key 和 secret 的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36673154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com