如果我使用'get_defined_vars()获取大量敏感数据-这是否违反安全性?任何用户都可以以任何方式请求这些变量吗?

问题描述 投票:0回答:1

我正在使用10年的PHP网站,未在任何框架上运行。只是简单的PHP脚本(老式的方式,包括/需要其他文件)。

我一直在寻找变量来完成使用函数get_defined_vars()编写的代码,并且注意到页面上输出了大量的变量,包括用户名,密码和更多数据,例如数据库凭证等。

用户可以通过任何方式打印/回显/ var_dumped /请求该数据吗?或者这是强制性的,只有我(一个可以从服务器内部访问PHP文件的人)可以使用,但是我想要而不愿意将它们显示给用户吗?

php security
1个回答
1
投票

您应仅将此功能用于调试。我想不出有什么充分的理由在实时代码中使用它。

用户可以通过任何方式获取此数据打印/回显/ var_dumped /请求?

并非无法访问您的PHP文件或存在一些违规行为。

如果我使用'get_defined_vars()获得了大量感性数据-是这个安全漏洞? (用户名,密码和更多数据,例如数据库凭据等。)

不一定违反。但是,如果某处存在漏洞,可能很容易受到干扰。

我认为如果想提高安全性,此旧代码可能需要大量工作:

  • 加密的密码永远不能在公共变量范围内
  • 纯文本密码不应在任何地方,也不应该存在于任何应用程序中-即使使用10年的旧代码也将完全失败
  • 如果有时间的话,封装您的组件(用户,数据库)
  • 已将设置保存在php.ini中,并将PHP更新到最新版本(为该代码修复10年的旧代码很有趣:-D)。这是一个提高PHP安全性的不错的教程:https://www.cyberciti.biz/tips/php-security-best-practices-tutorial.html
© www.soinside.com 2019 - 2024. All rights reserved.