PDO数据库连接安全吗?

时间:2017-07-10 17:50:04

标签: php database pdo connection

我正在尝试使用以下代码连接到我的数据库。它有效,但我不确定它有多安全。我也必须有私人功能吗?我没有关于如何在此代码上应用私有函数的任何示例。

$username = 'user';
$dsn = 'mysql:host=localhost; dbname=register';
$password = 'somepassword';

try{
    $db = new PDO($dsn, $username, $password);

    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);


}catch (PDOException $ex){
    echo "Connection failed ".$ex->getMessage();
}

2 个答案:

答案 0 :(得分:0)

更好地使用php composer,您可以将这些细节放在环境文件.env中。它将被保护为.env被隐藏并放置在服务器上。

答案 1 :(得分:0)

  • 将连接参数放入安全的地方(即无法访问) 通过HTTP请求,类似第一个答案的东西会很好),不要将它们留在PHP脚本或同一个上下文中的某个文件中...如果你放在那里,用htaccess DENY指令保护它
  • 永远不要将异常回显到脚本输出中,总是处理它们(put 进入日志文件,转换为隐藏参数的友好错误, 等等)。脚本永远不应该向用户抛出异常,必须处理它...用户必须只能看到来自脚本的友好消息,即使是“Ops,这里发生的不好事......”也比“ERROR:SQLSTATE [更好” 42000] [1049]未知数据库'users'“(向用户显示数据库结构的一部分,这是一个安全问题)