我正在使用Angular2 CLI和Firebase。该应用程序托管在Firebase上,它使用Firebase Realtime DB来存储数据。我有firebase配置如下 -
export const firebaseConfig = {
apiKey: "[XYZ]",
authDomain: "[ABC].firebaseapp.com",
databaseURL: "https://[ABC].firebaseio.com",
storageBucket: "",
messagingSenderId: "[123]"
};
由于上面的配置是明文并且在Angular2包中,因此它对所有人都可见。该应用的用户不会使用Firebase进行身份验证,但是他们生成和保存的数据需要是安全的,因此只有应用程序的apiKey等人才能获取数据。我如何确保我的应用程序中的用户只能读/写数据?
我已阅读Firebase身份验证,安全性和规则的文档 - 并且仍然不确定如何在没有应用级别或用户级别身份验证的情况下保护对数据库的访问。
编辑 - 继迈克尔的回复之后,我的(我认为这是一个非常见的)场景:
答案 0 :(得分:2)
传递给firebase.initializeApp()
的所有配置都被视为可公开披露。您不得依赖模糊处理来保护对实时数据库的访问。如果您要限制访问但未使用其中一个内置的Firebase Auth提供程序,则应generate a custom token识别您的用户。
安全规则和Firebase身份验证是直接从客户端安全访问数据的唯一方式。