php发送敏感信息,PHP 新手入门指南 - 隐藏敏感信息

我们编写的程序中,有时会涉及到连接数据库或一些账户以及口令等敏感信息,如果直接在程序中通过硬编码将会不安全也不容易维护,比如:

class Connection

{

public static function make()

{

try {

return new PDO('mysql:host=127.0.0.1;dbname=mytodo', 'root', '');

} catch (PDOException $e) {

die($e->getMessage());

}

}

}

如果这些信息控制不善容易造成信息泄漏,同时也难以维护管理。为此我们可以调整思路,让这些运行参数变得灵活可配置,从而到在编码时不直接暴露敏感信息,比如通过集中配置的方式来实现。

小实践

在之前系列的项目代码基础上。我们新增 config.php 文件:

// config.php

return [

'database' => [

'name' => 'mytodo',

'username' => 'root',

'password' => '',

'connection' => 'mysql:host=127.0.0.1',

'options' => [

PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION

]

]

];

这里设置 PDO::ATTR_ERRMODE 表示要返回错误报告。

更多可以参考手册 PDO::setAttribute

我们将数据库需要用到的相关信息抽取出来集中到了 config.php 中,这很方便我们之后集中管理这些会变动的信息。

接下来我们将 database/Connection.php 文件内容更改为:

// database/Connection.php

class Connection

{

public static function make($config)

{

try {

return new PDO(

$config['connection'].';dbname='.$config['name'],

$config['username'],

$config['password'],

$config['options']

);

} catch (PDOException $e) {

die($e->getMessage());

}

}

}

在我们之前的 bootstrap.php 中,内容修改后如下:

$config = require 'config.php';

require 'database/Connection.php';

require 'database/QueryBuilder.php';

return new QueryBuilder(

Connection::make($config['database'])

);

这样我们引入了配置文件 config.php 让它能为数据库连接进行灵活的配置,只要我们控制好 config.php 的私密性(这里暂不展开具体讨论),我们就已避免从硬编码的角度暴露敏感信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值