如何使用PHP include构建安全的环境?

如何使用PHP include构建安全的环境?,php,linux,security,amazon-web-services,amazon-ec2,Php,Linux,Security,Amazon Web Services,Amazon Ec2,我认为这是一个简单的问题,但我想对这个问题有一个正确的看法 我使用AmazonLinuxAMI在Amazon上创建了一个EC2实例。 然后我按照上的说明安装了Apache和php55。我还按照相同的指南设置了/var/www目录的权限 [ec2-user ~]$ sudo groupadd www [ec2-user ~]$ sudo usermod -a -G www ec2-user [ec2-user ~]$ sudo chown -R root:www /var/www [ec2-use

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

我使用AmazonLinuxAMI在Amazon上创建了一个EC2实例。 然后我按照上的说明安装了Apache和php55。我还按照相同的指南设置了/var/www目录的权限

[ec2-user ~]$ sudo groupadd www
[ec2-user ~]$ sudo usermod -a -G www ec2-user
[ec2-user ~]$ sudo chown -R root:www /var/www
[ec2-user ~]$ sudo chmod 2775 /var/www
[ec2-user ~]$ find /var/www -type d -exec sudo chmod 2775 {} +
[ec2-user ~]$ find /var/www -type f -exec sudo chmod 0664 {} +
让我们来考虑一下这个场景。仅用于测试目的,然后我们将实现真正的应用程序:

  • 我有一个PHPWeb应用程序,它有一个configuraton文件config.PHP,我们在其中存储了一些重要的应用程序安全信息,比如db凭证、登录条件
  • 为了保护它,我将config.php放在/var/set下的“/matteotest”目录中,设置为755;我在文档根目录外创建了/matteTest以提高安全性
  • 在一些文件中,我包含了config.php
  • php实际上设置为404,因此只有在需要一些更改时,我才会升级到604,然后再次降级到404
下面是我所做的详细说明:

在文档根中,我创建了2个文件。两个文件都有664个权限; 所有者=ec2用户和组=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>');

1) Is include($\u SERVER[“DOCUMENT\u ROOT”]./global.php)似乎是一个
好的和安全的选择?有更好更安全的方法吗


我更喜欢
包含dirname(_文件)'/global.php'从根目录中包含时。有时我使用
\uuuuuu文件\uuuuu

将根路径定义为常量,谢谢。。。。在查看手册时,我发现在使用PHP5.5时,我也可以使用DIR magic常量,而不是dirname(文件):include(DIR.DIRECTORY_SEPARATOR.'global.PHP')@agodoo您没有给出PHP版本,所以我给出了标准响应(并由我自己测试)。但是
\uuuuu DIR\uuuuuu
也应该有效:)
<?php
/**
 * Created by PhpStorm.
 * User: matteolatitude
 * Date: 26/03/15
 * Time: 12.36
 */
define('PHP_FILES_PATH', '/var/matteotest/');
<?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;
}