从安全的角度来看,可以在javascript中写这个吗?
var u = <?php echo $_SESSION["username"]; ?>;
(背景):
如果我在PHP中使用JS中的ajax更改密码脚本中使用它,并且我想在PHP页面中使用这部分代码原因,那么表单中包含oldpassword
,newpassword
,{{1并且用户已登录,并且在newpasswordcheck
中有一个已登录用户的缺口,并且为了更改密码,我需要新旧密码,我获得表单输入和执行代码的用户的用户名在$_SESSION["username"]
中,它将我们带到了我的代码行。
所以问题是,将会话值回显给我的javascript变量是否可以?
答案 0 :(得分:2)
如果我理解正确,绝对没有必要这样做。这是一个有原因的会议。如果用户在提交表单时需要更改他/她的密码,您可以在PHP中获取当前登录的用户,从而消除用户名的曝光(即使只是用户名)。
如果您因为使用AJAX而感到困惑,那么您仍然可以访问当前登录的用户,因为该用户的浏览器/客户端仍在执行请求,从而通过cookie来识别会话。
好像你误解了这个过程,对不起,如果我误解了。
答案 1 :(得分:1)
只有当$_SESSION['username']
是一个数字时才会起作用,而这几乎肯定不是。
var u = <?=json_encode($_SESSION['username'])?>;
json_encode
可以安全地转储到js。