禁用在控制台中编辑 sessionstorage 变量的可能性
Disable possibility to edit sessionstorage variable in console
所以,我正在创建这个网站,当用户像这样成功登录时,将 sessionstorage 变量 'logedIn' 设置为 true:
sessionStorage.setItem('logedIn', 'true')
该变量用于其他网页上,以在显示内容之前查看用户是否已登录,以便未登录的用户无法访问该网页。它就像一个魅力,但我注意到,如果我在 google chrome 控制台中手动键入代码,我可以轻松更改会话变量。这显然是不希望的。
我的问题是:我该如何解决这个问题?
PS:我不使用PHP会话变量的原因是因为登录过程是用javascript完成的。当按下登录按钮时,ajax 将给定的凭据发送到 php 脚本,该脚本会检查数据库。如果成功,它会向 ajax complete 函数发回一个代码,该函数会设置变量。如果你有更好的方法来做我需要做的事情,非常欢迎你;)
谢谢,芝诺
你不能,而且不安全。在 AJAX 结果之后,您应该设置 cookie 并在服务器端的每个页面上验证它们。
所以,我正在创建这个网站,当用户像这样成功登录时,将 sessionstorage 变量 'logedIn' 设置为 true:
sessionStorage.setItem('logedIn', 'true')
该变量用于其他网页上,以在显示内容之前查看用户是否已登录,以便未登录的用户无法访问该网页。它就像一个魅力,但我注意到,如果我在 google chrome 控制台中手动键入代码,我可以轻松更改会话变量。这显然是不希望的。
我的问题是:我该如何解决这个问题?
PS:我不使用PHP会话变量的原因是因为登录过程是用javascript完成的。当按下登录按钮时,ajax 将给定的凭据发送到 php 脚本,该脚本会检查数据库。如果成功,它会向 ajax complete 函数发回一个代码,该函数会设置变量。如果你有更好的方法来做我需要做的事情,非常欢迎你;)
谢谢,芝诺
你不能,而且不安全。在 AJAX 结果之后,您应该设置 cookie 并在服务器端的每个页面上验证它们。