2015-11-01 97 views
1

所以,我创建这个网站的sessionStorage的变量“logedIn”设置为true,当用户成功地登录这样的:禁用可能性控制台编辑的sessionStorage变量

sessionStorage.setItem('logedIn', 'true') 

该变量在使用其他网页在显示内容之前查看用户是否已登录,以便未登录的用户无法访问该网页。它的功能就像一个魅力,但我注意到,如果我手动在谷歌浏览器控制台中键入代码,我可以轻松更改会话变量。这显然不是想要的。

我的问题是:我该如何解决这个问题?

PS:我不使用PHP会话变量的原因是因为登录过程是用javascript完成的。当按下登录按钮时,ajax会将给定的凭证发送给php脚本,该脚本会检查数据库。如果它是成功的,它将代码发送回ajax complete函数,该函数设置变量。如果你做什么,我需要做的更好的方法,你都非常欢迎;)

感谢,芝诺

+1

你是否控制验证登录的php脚本?只要设置'$ _SESSION ['loggedIn'] ='yup';'在那里,并检查它是否设置在每个PHP脚本。你不应该在JS – Terminus

+0

中做这种检查好吧,我会这么做,感谢你的快速反应! –

回答

4

你不能,这不是安全的。 AJAX结果后,您应该设置cookie并在服务器端的每个页面上验证它们。

+0

所以我不能使用PHP会话吗? –

+0

你可以。使用[sessions](http://www.w3schools.com/php/php_sessions.asp)或基于cookie的自己的系统。 –

+0

还有一个问题,我可以在php文件中设置检查数据库中的给定凭据的变量,还是不工作/不安全? –