当前位置: 首页 > 知识库问答 >
问题:

var_dump php类对象显示数据库用户名和密码

郑旭
2023-03-14

当我意外地var_dump()一个子类的对象时,我有点担心,结果显示了我所有的sql元素和变量值,包括数据库用户名、密码和数据库名。它有安全问题吗。如果是,我如何保护它?如果有人给我一盏灯,我会很感激的。

$ClassObject=new MyChildClass();
var_dump($ClassObject);

样本结果如下:-

对象(MyChildClass)#1(17){[“数据库”:受保护]=

共有1个答案

刘琨
2023-03-14

神奇的debugInfo方法就是这样做的。在类中,添加以下代码:

public function __debugInfo()
{
    $properties = get_object_vars($this);
    unset($properties['host']);
    unset($properties['user']);
    unset($properties['pass']);

    return $properties;
}

工作原理:第一行检索当前实例中属性的完整列表。然后,使用unset,我们删除所有不希望显示在var_dump中的属性。

在第一个示例中,当在此对象上使用var_dump时,将显示除3之外的所有属性。

或者使用更安全的方法:创建一个空数组,并仅用您想要显示的属性填充它:

public function __debugInfo()
{
    $properties = [];
    $properties[] = 'table';
    $properties[] = 'queryString';

    return $properties;
}

在第二个示例中,在此对象上使用var\u dump时,仅显示2个属性。

通过将此方法添加到所有类中,您可以精确地控制使用var_dump时显示的内容。

文档:\ u调试信息

 类似资料:
  • 问题内容: 在Redis中可以使用用户名,密码和数据库吗? 这个问题的原因是因为在官方的 pyramid_redis_sessions 文档(http://pyramid-redis- sessions.readthedocs.io/en/latest/gettingstarted.html )中,该参数… …(例如,在Python / Pyramid内部使用)建议使用用户名,密码和db。 但是,

  • 我试着使用这种方法:Android-登录textView后显示sqlite数据库中的用户名 但我得到一个错误: 我想要的是在成功登录后在UserPanelActivity中显示当前昵称。 用户面板活动: DataBaseHelper: UserPanel.xml 登录活动: 谢谢你的帮助!:)

  • 我被指派了一项集成API的任务。我已经能够从API获取信息,但出现了一个弹出窗口,要求我提交用户名和密码。我有用户名和密码,但我的想法是在不需要弹出窗口的情况下登录。 代码如下:

  • 如何从java代码中使用用户名和密码创建mysql数据库?然后创建所有的表? 我在谷歌上搜索,发现了这个代码 但就我而言,我需要: -从java设置用户名和密码 创建所有的表 确保: > MySQL连接排序:utf8_general_ci 我的数据库和表排序规则设置为:utf8\u general\u ci或utf8\u unicode\u ci 然后我必须在MySQL中执行:设置名称utf8 设

  • 我使用带thymeleaf 3的Spring靴 我试着展示一个豆子 在我的控制器里我有 在我的车里 在我的位置 在我的胸腺碎片中 当我试图显示这个片段时,我得到 org.attoparser。ParseException:异常评估SpringEL表达式:“cities.id”由:org.springframework.expression.spel引起。SpelEvaluationExceptio