我目前正在为我教会的大学团体使用一个网站,并且开始对我所写内容的安全性有些担心。例如,我使用以下功能:
function dbConnect() { global $dbcon; $dbInfo['server'] = "localhost"; $dbInfo['database'] = "users"; $dbInfo['username'] = "root"; $dbInfo['password'] = "password"; $con = "mysql:host=" . $dbInfo['server'] . "; dbname=" . $dbInfo['database']; $dbcon = new PDO($con, $dbInfo['username'], $dbInfo['password']); $dbcon->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $error = $dbcon->errorInfo(); if($error[0] != "") { print "<p>DATABASE CONNECTION ERROR:</p>"; print_r($error); } }
每当我进行某种查询时就连接到数据库。我总是使用PDO准备好的语句来防止任何用户输入的SQL注入,并且我使用htmlspecialchars进行转义,然后再输出。我的问题是: 如何保护数据库的用户名和密码? 我不知道是否有人可以查看我的PHP文件的源,但如果可以,我只能想象我会被缠住。我该怎么办?
您应该将数据库凭据放在文档根目录之外的文件中,这样,如果出现混乱,并且PHP未被显示给用户,则没人能看到您的密码。
看一下 这篇文章的主题 这篇文章的主题:
解决方案很简单。将所有敏感数据放置在Web服务器文档根目录之外。现在,许多专家主张将大部分(如果不是全部)php代码放置在Web服务器文档根目录之外。由于Web服务器不受PHP的相同限制,因此您可以在与文档根目录相同的目录下创建目录,并将所有敏感数据和代码放在此处。