Apache:如何制作目录' secure'

时间:2015-03-26 08:31:43

标签: php apache security amazon-ec2

我认为这是一个简单的'问题,但我想对问题有一个正确的看法。

我使用Amazon Linux AMI在Amazon上创建了一个EC2实例。 然后我安装了Apache和php55。

让我们考虑一下这种情况: - 我有一个php web应用程序,它有一个configuraton文件config.php,我们存储一些重要的信息以保证应用程序的安全性,比如db credential,login criteria。 - 在我使用的一些文件中包含(" configuration / config.php") - 我把config.php放在" / configuration" / var / html下的目录设置为775 - config.php实际设置为404,这样我只有在需要进行一些更改后才会升级到604,然后我会再次降级到404

我希望config.php和/ configuration目录非常安全,避免一些不好的用户查看它并在文件中获取信息。通过这种方式,我可以放任何关键的'在该子目录中的文件。

我还有什么可以做的,我还没有? 最好考虑把/ configuration dir放在/ var / html public目录之外吗?如果是,怎么样?

最好的问候, 马特

1 个答案:

答案 0 :(得分:1)

我在这里发布了一个更多的测试:

最后我以这种方式制作(这仅用于测试目的):

在文档根目录中我创建了2个文件。这两个文件都有664个权限; owner = ec2-user和group = www

index.php

<?php
/**
 * Created by PhpStorm.
 * User: matteolatitude
 * Date: 26/03/15
 * Time: 1.12
 */

include($_SERVER["DOCUMENT_ROOT"].'/global.php');
include(PHP_FILES_PATH.'config.php');
echo '</br>';

for ($i = 1; $i <= 10; $i++) {
    echo $i;
}
echo('Calculated result: '.$somma.'</br>');

global.php

<?php
/**
 * Created by PhpStorm.
 * User: matteolatitude
 * Date: 26/03/15
 * Time: 12.36
 */
define('PHP_FILES_PATH', '/var/mytest/');

然后我使用owner = root创建了/ var / mytest目录,使用755权限创建了group = root。 然后在/ var / mytest中我保存了config.php;这个文件只是一个测试;在真正的应用程序中,我将使用它来存储例如数据库连接数据。 owner = root和group = root

config.php

<?php
/**
 * Created by PhpStorm.
 * User: matteolatitude
 * Date: 26/03/15
 * Time: 1.15
 */

// vediamo se esegue anche questo script
for ($k = 1; $k <= 4; $k++) {
    $somma .= $k*2;
}

我想知道

1)是否包括($ _ SERVER [&#34; DOCUMENT_ROOT&#34;]。&#39; /global.php')似乎是一个好的和安全的选择?是否有更好的方法和更安全的方法?

2)我的权限(以及所有者和群组)是一个不错的选择,还是你会以不同的方式完成?

正如您所看到的,我对安全性非常感兴趣......

非常感谢, 马特