只要某人未登录,我想将我的网站“锁定”。实施的登录系统使用Google Firebase,因此我可以轻松,安全地允许用户登录。
当前,我编写了一条if语句,如果您尚未登录,该语句会将您重定向到登录页面。我知道可以轻松地绕过该脚本,因为该脚本是客户端的,所以我想问一下最好的方法是对我来说,使这个过程更加安全。我考虑过使用脚本在用户登录时将整个html插入页面中,但这也意味着整个html将位于客户端脚本中,这是不好的。
auth.onAuthStateChanged(function(user) {
if (user) {
if(window.location.href =="login.html"){
mail = user.email;
window.alert("on login logged in. redirecting to index User Email: " + mail);
window.location.replace ("index.html");
}
} else {
window.alert(window.location.href);
if(window.location.href !="login.html"){
mail = null;
window.alert("not on login and logged out. Redirecting to login page Email: " + mail);
window.location.replace = "login.html";
}
}
});
答案 0 :(得分:0)
如果您的网站托管在Firebase Hosting上,则所有文件都是公开的。无法阻止用户访问特定文件。参见Firebase Hosting - password protect website?和Can Firebase hosting restrict access to resources?
也就是说,秘密信息通常不直接存在于HTML中,而是存在于从服务器(例如,从数据库)加载的其他资源中。并且,如果您使用的数据库来自Firebase(Cloud Firestore或实时数据库),则可以确保只有授权用户才能使用Firebase's server-side security rules访问数据。如果您使用的是其他数据库或您自己的后端来提供需要保护的数据,请在您自己的后端代码中查看verifying ID tokens,以确保该用户有权访问数据。