我正在开发 chrome 扩展程序,并使用 Cloud Firestore。正如 Google 的文档中提到的,我必须将代码放在 JavaScript 文件本身中,任何可以提取源代码的人都很容易看到它。出于安全考虑,我们只能允许通过某些域名或某些应用程序访问数据库。但是对于 Google Chrome 扩展程序,它既不能使用域名托管,也不能注册为应用程序。那么,我怎么不让任何人乱搞呢?
我的第二个问题是,我在 chrome 扩展代码中有一些 if 语句,这些语句与来自 Cloud Firestore 的凭据相关联并根据它显示结果。像这样 -
if(userrefdoc.getCoins < 1){
console.log("Not enough coins. Buy some more");
}
因此,如果有人可以提取和修改我的代码,他可以根据自己的需要轻松更改 if 语句并访问不允许使用的功能。那么,我该如何处理这种情况呢?
在您发送给客户以在其浏览器或设备中运行的 JavaScript 代码中隐藏秘密是不可能的(Android、iOS 应用程序也是如此)。您应该假设一个坚定的黑客将能够对所有交付的代码进行逆向工程。
Firebase 初始化参数不是“凭据”。它们只是标识您的项目的设置。他们没有秘密。
在 Firebase 中保护数据的方法是使用Firebase 身份验证和Firestore 安全规则。如果您无法使用 Firebase 身份验证或安全规则来控制授权个人用户对您的数据库的访问,但您需要公共客户端代码来读取和编写它,您应该假设任何拥有您项目名称的人都会能够读写它。
唯一的解决方法是设置自己的后端,通过它路由所有访问,并执行自己的检查以查看客户端是否应该能够执行此操作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句