Dan*_*han 5 security api android ios
我正在开发一个应用程序,它将使用文本消息来验证用户的电话号码,通常是"输入代码"例程.
在阅读了一点之后,为我在应用程序中使用的第三方(twilio,nexmo等)存储私钥似乎是个坏主意.有人可以从我的二进制文件中对这些进行反向工程,并在他们的应用程
但是,在服务器上安装这些也无济于事,有人可能只是对我用来发送短信的服务器端点进行逆向工程,而是使用它.
例如,我可以对WhatsApp进行反向工程,并获得用于电话号码验证的私钥或API端点,并在我的应用中使用它,节省了数千美元.
关于如何保护自己免受此类攻击的任何想法?
但是,将这些放在服务器上也无济于事,有人可以对我用来发送文本消息的服务器端点进行逆向工程,然后改用它。
是的,它确实有很大帮助。
如果有人可以访问您的 Web 服务的密钥,他们只能做您的服务允许他们做的事情。拥有一个封装所有 3d 方密钥和 API 的 Web 服务是一个非常好的主意 - 它更安全。
没有人会访问您的敏感密钥,这将允许他们做任何事情。
例如,第 3 方 API 允许删除 - 您的服务器包装器 API 将不允许。
此外,您可以为可疑行为添加任何额外的逻辑或警报。
如果有人下定决心,您将无法阻止从您的应用程序中对您的密钥进行逆向工程。你只能让它变得更难。计算机安全永远不应该是“做起来有多难/有多复杂”,但在这种情况下,我们别无选择。
好的,所以您必须将 API 密钥硬编码到您的源文件中。它可以很容易地进行逆向工程。
您可以混淆您的密钥,使其无法直接读取。结果将是它们将分散在一个编译文件中,而不是舒适地放在一个地方。
在 iOS 上,你可以使用这样的东西。
在 Android 上,您可以使用DexGuard或任何其他方式来混淆字符串。
使黑客难以为继的另一层是对密钥进行加密。
您可以对 Android 执行相同的操作。
好的,假设您有一个用于视频管理的第 3 方 API。
黑客想要删除服务器上的所有视频,因为第三个 API 允许这样做。
首先,他必须将文件中所有分散的字符串粘合起来。如果他设法做到这一点,他必须找到一种方法来解密它。
即使他设法解密,那也会给他你的服务器和你的服务器的 API 密钥,你的服务器只允许上传视频,而不能删除它们。
| 归档时间: |
|
| 查看次数: |
1433 次 |
| 最近记录: |