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 项目。它们绝不是一种身份验证/授权机制。
在这里查看我的答案:
我对@987654321@的回答
和How to restrict Firebase data modification?
加藤对How to prevent other access to my firebase的出色回答
您会注意到,其中大部分都指向 Firebase 身份验证来对用户进行身份验证,然后是服务器端安全规则来授权他们的访问。有了这两个,什么代码执行访问就不再重要了。如果用户在同一个后端进行身份验证,并且数据访问遵循您的服务器端安全规则,则意味着它遵循您设置的规则,无论它是哪个代码。
【讨论】:
以上是关于Firebase 身份验证和实时应用程序数据库如何保护自身?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Firebase 身份验证服务并在我们自己的数据库中拥有用户?