【发布时间】:2018-06-07 16:05:15
【问题描述】:
我在 java 上使用 Firebase Admin SDK 来创建带有自定义声明集的自定义令牌。我将这些发送回作为客户端界面的 ANDROID 应用程序,并使用以下方式登录:
signInWithCustomToken("foundtokenfromserver");
现在用于签署令牌的服务帐户文件是安全且隐藏的。但由于数据库 URL、API 密钥和存储桶 URL 都暴露在 Web 部件上,我认为任何人都可以从中制作自己的应用程序。我确实制定了安全规则,将用户限制在他们自己的节点上。
我主要关心的是:
如果有人拦截了铸造的自定义令牌并将其保存。他们不能只使用该令牌使用上述 FirebaseApp(使用公开信息生成)登录吗?
有没有办法让firebase确实防止这种滥用(也许身份验证域可以阻止网络,但本地主机呢)?
【问题讨论】:
-
是的,我明白了,但是暴露了这些,任何人都可以在 web 和 android 上初始化 FirebaseApp 实例(idk about ios)。如果他们确实拿到了身份验证令牌,我担心他们可能只能进行身份验证,或者说伪装并进入。android sdk 也会透明地刷新令牌,所以......是的,终身访问:-\跨度>
-
我认为没有人可以使用这些数据初始化 FirebaseApp 实例。因为在 Android 上,您需要
google_services.json文件来初始化您的应用程序。在网络上,您需要先登录 Firebase CLI,然后才能使用 Firebase 托管服务/部署网络应用。 -
google_services.json 如果有人解压 apk 就会暴露。它们也可以具有相同的包 ID,在我的情况下,由于一个应用程序中有多个 firebase 项目,因此 firebase 应用程序不受 sha1 保护。正如你所说,由于登录,网络是安全的:D
-
我太担心了 :'( 愚蠢的过度思考的大脑......我相信 android 上也一定有一些东西可以拯救我
标签: android firebase firebase-authentication