4

最近有一个大问题,我的网络托管公司搞砸了,我的所有 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我..只要问,我会清除我描述中的任何空白。

4

3 回答 3

5

只需放置info.php在您的 webroot 之外。这样,您可以包含它,但如果您的网络托管 f*#$ 起来,其他人无法查看该文件,即使是纯文本。

然后你会像这样包含它:

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

这样,即使有人发现您有一个名为info.php存储您所有密码的文件,他们也无法将浏览器指向该文件。

以上将是理想和最防水的解决方案。但是,如果由于权限而无法做到这一点,则另一种选择是将所有敏感文件放在一个目录中,并阻止使用.htaccess文件直接访问该目录。

在要阻止访问的目录中,放置一个.htaccess包含以下内容的文件:

deny from all

于 2012-05-30T22:52:32.053 回答
1

如果由于某种原因 xbonez 的答案不起作用(可以说一个人无权访问非 document_root 文件夹)..您可以通过使用 .htaccess 来实现相同的目的

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

这在理论上(未经测试)应该保护文件不被浏览器使用,但不阻止 php 包含所述文件。

于 2012-05-30T22:57:07.907 回答
-2

为示例“requests.php”创建重定向到文件的表单,并为所有请求打开它。如果您的数据正确重定向到特定页面,如果不这样做,则在开关结束时放置另一个重定向.这样用户就看不到那个页面了。不要把html或其他东西放在那里-只有逻辑。

于 2012-05-30T22:56:45.540 回答