Firebase 身份验证和实时应用程序数据库如何保护自身?

Posted

技术标签:

【中文标题】Firebase 身份验证和实时应用程序数据库如何保护自身?【英文标题】:How does the firebase authentication and realtime application database secure itself? 【发布时间】:2018-09-16 23:47:25 【问题描述】:

从如何保护对在线资源的访问的一般开发角度来看,我对此感到好奇。我们使用以下 firebase 配置参数初始化我们的 webapp:

apikey authdomain projectid databaseurl messagesenderid

服务器如何使用这些来确保请求有效?主要是为什么其他人不能直接从应用程序中提取这些参数,然后创建另一个使用相同参数的“Evil”应用程序。

“邪恶”将包括创建一个不同的应用程序,使用从真实应用程序中获取的相同凭据,使用纯电子邮件/密码注册表单根据真实应用程序中包含的相同凭据为用户注册,然后一旦用户签了更“恶”。

也是简单的 node express js 应用程序,我们希望使用上述参数保护对它的访问,从应用程序请求生命周期的角度来看,这将如何工作?

1) Express 收到请求

2) Express 检查 ...

最后,这部分是 openid-connect 工作原理的一部分吗?换句话说,它是完全遵循 openid-connect 规范,还是专门为 firebase 构建的基于自定义的安全解决方案?

【问题讨论】:

【参考方案1】:

这些配置参数只不过是在各种服务器上识别您的 Firebase 项目。它们绝不是一种身份验证/授权机制。

在这里查看我的答案:

我对@9​​87654321@的回答

和How to restrict Firebase data modification?

加藤对How to prevent other access to my firebase的出色回答

您会注意到,其中大部分都指向 Firebase 身份验证来对用户进行身份验证,然后是服务器端安全规则来授权他们的访问。有了这两个,什么代码执行访问就不再重要了。如果用户在同一个后端进行身份验证,并且数据访问遵循您的服务器端安全规则,则意味着它遵循您设置的规则,无论它是哪个代码。

【讨论】:

以上是关于Firebase 身份验证和实时应用程序数据库如何保护自身?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Firebase 身份验证服务并在我们自己的数据库中拥有用户?

使用 Firebase 可调用函数时如何检索用户的身份验证数据?

应用离线时如何绕过 Firebase 身份验证?

如何存储firebase身份验证会话

Firebase 身份验证:如何验证用户仍然存在

如何在 vue 上处理 Firebase 身份验证