让我们说我正在构建一个带有firebase的react-native应用程序,它假设在应用程序中有密钥。有人可以窃取钥匙吗?如果是这样,那么我该如何保护呢?
答案 0 :(得分:4)
由于您无法控制对源的访问,因此没有100%安全的方式来存储设备上的任何秘密。保证密钥安全性的唯一方法是首先不要将它们放在设备上。
您找到的任何解决方案都会有一个缺陷,this article by Michael Ramirez
非常清楚地说明了这一点你需要平衡你真正需要这些密钥的安全性。
例如,在Android上,我们会将一些我们关心的密钥存储在res / values / secrets.xml字符串文件中,而不是谷歌和其他API,而该文件未提交版本控制。某人strings out_app.api
很容易,但我们已经决定不再关心如何保护这些密钥。
<resources>
<string name="google_api_key">OurApiKey</string>
</resources>
如果你在Android和&amp ;;上使用ReactNative根据您要存储的密钥类型,您可以使用Android Keystore System来使用Keystore API 但是,我认为这不适用于存储Firebase密钥。