如何在使用共享主机并且无法访问webroot之外时保护我的数据库凭据?

时间:2012-10-07 14:02:45

标签: php mysql security

我在包含文件中包含了我想要放在webroot文件之外的所有数据库凭据。

但是,我的共享主机方案不允许我将文件放在webroot之外。我是否必须以某种方式加密我的文件以确保我的凭据是安全的?

我已经阅读了一种方法来制作一种虚假的404页面,但这对我来说根本不是很安全。

我还采取了创建只读用户帐户的步骤,这样如果我的帐户被泄露,那么至少没有任何东西可以被覆盖或删除,但我显然希望尽可能安全,因为我可以给出限制。

2 个答案:

答案 0 :(得分:2)

你不能

最好的可能是创建php文件,它将由托管服务解释。

<?php

$DB_USER = 'your_user';
$DB_PASS = 'your_pass';
$DB_INSTANCe= 'your_instance';

如果有人从网络浏览器访问您的文件,他将看不到任何内容。当您需要文件时,只需加入它。

您还可以添加一些.htaccess(可能),这样任何使用网络浏览器的人都无法访问您的文件。

对您具有相同物理主机读取权限的人可能会无法访问此文件,并且无法阻止此操作。

答案 1 :(得分:1)

如果服务器正在运行apache并且您被允许覆盖指令,则可以通过在webroot中使用以下行创建.htaccess文件来实现,请务必替换&lt; FILENAME&gt; (包括&lt;&gt;),其中包含您要拒绝访问的文件的名称。

#Deny access to the .htaccess file

<Files ~ "^\.htaccess">

Order allow,deny

Deny from all

</Files>

#Deny the database file

<Files ~ "^\<FILENAME>$">

Order allow,deny

Deny from all

</Files>