[英]Firebase - How to set security rules so that only logged in users can read and write?
[英]Displaying HTML page only to logged in users using Firebase
我有一个简单的 html 页面,我用 Firebase 保护它。
我想听听别人对我这样做是否安全的看法。
为了检查用户是否登录,我在 header 中放置了一个 javascript function。我注意到当我尝试在未登录的情况下访问该页面时,我可以在一瞬间看到页面的内容,然后重定向。 因此,我在正文中添加了一个 id,并将显示设置为无,直到验证用户是否已登录。参见代码:
<script>
const auth = firebase.auth()
auth.onAuthStateChanged((user) => {
if (user) {
document.getElementById("body").style.display = "block";
} else {
window.location.replace("/login.html")
}
});
</script>
我的问题是:您认为这样做有什么问题吗? 这样做有什么安全问题吗?
不,当使用普通 Javascript 时,这样做完全没问题。即使您使用像 Vue 这样的现代框架,您也会存储一个数据变量isUserLoggedIn
或其他东西来有条件地呈现 UI。
如果有人使用浏览器开发工具将显示设置为block
,只要您正确设置了安全规则,这就不是威胁。
这确实是一种相当常见且简单的方法,可以防止在等待确定用户身份验证 state 时出现过多的闪烁。
据我所知,防止 flash 的唯一更好(但更复杂)的方法是将您自己的标记值存储在本地存储中,Michael 在他的 I/O 演讲中展示了这一点: https://youtu.be/NwY6jkohseg?t =1309
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.