无Firebase数据库URL能否访问?如何在Android Studio中隐藏该URL?
Firebase相关问题解答
未知URL时的数据库访问权限说明
即便你将Firebase数据库的读写权限全部设置为true、且未强制启用App Check,不知道你的数据库专属实例URL的用户也无法访问你的数据库。
注意:仅靠隐藏URL不能作为唯一的安全防护手段,一旦URL发生泄露,任何用户都可以直接读写你的全部数据库内容,生产环境必须搭配严格的安全规则、强制启用App Check做多层安全防护。
Android Studio中隐藏数据库URL的最优方案
- 不要将URL硬编码到Java/Kotlin业务代码中,统一存储到默认不会被提交到版本控制仓库的
local.properties文件中,避免源码泄露导致URL外泄:- 在
local.properties中添加自定义配置项:firebase.database.url=你的实际Firebase数据库URL - 在模块级
build.gradle文件的android.defaultConfig代码块中添加如下配置,将配置项注入到构建变量中:
buildConfigField "String", "FIREBASE_DATABASE_URL", "\"${properties.getProperty("firebase.database.url")}\""- 业务代码中直接调用生成的构建变量即可获取URL,全程不会在源码中明文出现URL内容:
val databaseUrl = BuildConfig.FIREBASE_DATABASE_URL
- 在
- 正式构建APK时开启代码混淆和资源压缩,在模块级
build.gradle的release构建配置中开启如下配置,提升反编译后获取URL的难度:release { minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' // 其余你已配置的release构建参数 } - 禁止将URL写入res/values/strings.xml等公共资源文件,这类文件在APK反编译后可以直接明文读取,安全性极低。
内容的提问来源于stack exchange,提问作者user16164526
相关产品推荐
相关产品推荐

