假设我主持并使用Firebase Hosting
为我的Angular提供服务,并使用Angular'services
为我的Firebase Functions
,Firestore
和Firebase Authentication
调用API。< / p>
我想知道Angular中的代码或已处理数据是否有可能泄漏:
1)如果我在服务中硬编码了我的API密钥,那么泄漏我的API密钥是否会导致安全漏洞?
2)从Firestore到Angular Services的数据以及服务中处理的数据是在服务器端还是客户端处理的?
谢谢。
答案 0 :(得分:2)
回答问题1 / 您的API密钥将是“公开的”,但这不是问题,请参阅此“着名”答案Is it safe to expose Firebase apiKey to the public?。所以没有“安全漏洞”。
回答问题2 / 您的Angular服务是在客户端执行的,因此您从Firestore获取的数据将在客户端进行处理。 Firebase Hosting的作用只是在需要时(即客户端请求)将Angular文件发送到客户端。
这意味着您应该向Firestore数据库添加一些安全规则(并相应地构建查询),以便仅向客户端发送他/她可以读取的数据。这些安全规则是身份验证/授权机制的授权部分,而Firebase身份验证将是第一部分。您可以阅读有关Firestore安全规则here的文档(请注意它们与API密钥完全不同),以及Firebase身份验证here。
最后请注意,使用Firebase时,在后端(即服务器端)运行的代码中唯一的部分是您为Cloud Functions编写的代码。因此,如果您从Angular应用程序调用云函数(例如HTTPS可调用函数或HTTP请求),则此函数的代码将在服务器端执行 ,并且仅执行结果数据将被发送回Angular应用程序(客户端)。