在javascript中使用$ _SESSION [“attribute”]

时间:2013-11-19 22:06:14

标签: javascript php ajax security change-password

从安全的角度来看,可以在javascript中写这个吗?

var u = <?php echo $_SESSION["username"]; ?>;

(背景):
如果我在PHP中使用JS中的ajax更改密码脚本中使用它,并且我想在PHP页面中使用这部分代码原因,那么表单中包含oldpasswordnewpassword,{{1并且用户已登录,并且在newpasswordcheck中有一个已登录用户的缺口,并且为了更改密码,我需要新旧密码,我获得表单输入和执行代码的用户的用户名在$_SESSION["username"]中,它将我们带到了我的代码行。

所以问题是,将会话值回显给我的javascript变量是否可以?

2 个答案:

答案 0 :(得分:2)

如果我理解正确,绝对没有必要这样做。这是一个有原因的会议。如果用户在提交表单时需要更改他/她的密码,您可以在PHP中获取当前登录的用户,从而消除用户名的曝光(即使只是用户名)。

如果您因为使用AJAX而感到困惑,那么您仍然可以访问当前登录的用户,因为该用户的浏览器/客户端仍在执行请求,从而通过cookie来识别会话。

好像你误解了这个过程,对不起,如果我误解了。

答案 1 :(得分:1)

只有当$_SESSION['username']是一个数字时才会起作用,而这几乎肯定不是。

var u = <?=json_encode($_SESSION['username'])?>;

json_encode可以安全地转储到js。