数据库凭据的安全存储(Secure storage of database credentials)

2019-06-25 00:04发布

最近有一个重大问题,在我的网络托管公司搞砸了,我所有的PHP文件中以明文显示。 这是一个重大问题,对我来说显而易见的原因。 主要是因为MySQL数据库的细节被曝光。

我现在想改变在我的PHP文件获取数据库的登录信息,这样即使托管公司失败,我这永远不会再发生的方式。

我的当前设置如下:

     include 'info.php';

    class Login {

var $host;
var $username;
var $password;
var $db;
var $url;

该info.php的里面是数据库的用户名,密码等。 我希望把它使得info.php的文件不能被看作只有我.php文件能够以获取登录信息来源访问info.php的。

我该如何设置呢? 这是一个有点棘手的一个对我解释那么请不要苛刻和-1我不好描述..只是问,我会清理在我描述的任何空隙。

Answer 1:

只要把info.php你的根目录之外。 通过这种方式,可以包括,但应您的网络托管F *#$起来,没有人可以查看该文件,甚至以纯文本格式。

然后,将包括这样的:

include('../info.php');

这样一来,即使有人发现了,你有一个名为info.php ,存储所有的密码,他们不能将其浏览器指向该文件。

以上将是理想和最防水的解决方案。 但是,如果这是不可能的,因为权限,另一选择是将所有敏感文件的目录,并使用块到该目录中直接访问.htaccess文件。

在目录要封锁访问,放置.htaccess文件,其内容如下:

deny from all



Answer 2:

如果由于某种原因xbonez的答案不工作(可以说一个没有访问到非DOCUMENT_ROOT文件夹)。您可以通过使用的.htaccess实现同样的事情

<files info.php>
 order allow,deny
 deny from all
</files>

这在理论上应(非测试)保护文件,在浏览器中使用但不能从包括所述文件块的PHP。



Answer 3:

创建重定向到文件的例子“requests.php”,并就其开关你requests.If你的数据是正确的重定向到特定的页面,如果不这样做same.On开关年底建成anoter重定向形式。随着这样用户不能看到page.Don't把therer HTML或东西 - 只是逻辑。



文章来源: Secure storage of database credentials