【问题标题】:Is it safe to pass data from PHP to JavaScript?将数据从 PHP 传递到 JavaScript 是否安全?
【发布时间】:2017-06-09 12:39:23
【问题描述】:

当然,我将我的登录 ID 保存在 PHP 会话中。 在我的源代码中将 id 从 PHP 传递到 JavaScript 是否安全且专业,如下所示:

var myLoggedInId = "<?php echo $theLoggedInIdFromSession; ?>";

【问题讨论】:

  • 您在网站上公开的任何数据都是公开的,因此不安全。
  • myLoggedInId 是用户名吗?
  • 否,loggedInId 不是用户名。这个用户 ID 不是什么秘密。公众可以知道吗?我说的是一般情况下通过php向js传递数据的方法。
  • 我不是php coder,所以不知道专业不专业。但是我看到很多代码确实使用 标签在服务器上为客户端动态创建函数/变量。
  • 为什么要传递用户 ID 而不是依赖会话 ID?它是一个随机生成的字符串,与用户 ID 不同,用户 ID 通常是数字并按顺序(伪)生成(因此要访问另一个用户的数据,您可以增加或减少 id,直到找到另一个帐户的数据)。跨度>

标签: javascript php security authentication web


【解决方案1】:

JS 代码是客户端,这意味着任何用户都可以在任何浏览器中使用开发人员工具对其进行调试,并获取任何所需变量的值。所以不,它不保存。

【讨论】:

  • 但是他们也可以改变它吗?我可以查看用户 ID,但他们可以更改这些数据吗?
  • 是的,他们可以,在使用浏览器调试 JS 时使用控制台
  • 你不能让人们通过javascript发送敏感数据,因为它可能会被改变。但是你为什么要问这个?此数据从服务器发送到客户端,而不是从客户端发送到服务器。
【解决方案2】:

这在 asp 和 php 中将数据发送到 javascript 是正常的。您发送给 javascript 的内容与其他公共数据没有区别(在安全性方面)。因此,如果用户名是公开的,则将其发送到 javascript 是没有问题的。

【讨论】:

  • 是的,但是他们可以更改 js 代码中的值吗?如果是这样,他们可以将其更改为其他用户 ID,并在从其他人登录时查看系统。
  • 是的,他们可以更改它,但如果您真的编写代码,他们就不会对您的网站做任何有害的事情。
  • 重要的是您发送给js的用户名必须仅供阅读。并且服务器中没有从 js 代码中获取敏感数据的方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-28
  • 2011-04-29
  • 2020-10-14
相关资源
最近更新 更多