我认为这是一个简单的问题,但我希望对这个问题有一个正确的认识。
我使用 Amazon Linux AMI 在 Amazon 上创建了一个 EC2 实例。 然后我按照 http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-LAMP.html 上的说明安装了 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 {} +
让我们考虑一下这种情况。这仅用于测试目的,然后我们将实现真正的应用:
- 我有一个 PHP Web 应用程序,它有一个配置文件 config.php,我们在其中存储一些用于应用程序安全的重要信息,例如数据库凭据、登录条件。
- 为了保护它,我将 config.php 放在/var/下的“/matteotest”目录中,设置为 755;我在文档根目录之外创建了/matteotest 以提高安全性
- 在一些文件中我包含了 config.php
- config.php 实际上设置为 404,因此只有在需要进行一些更改时我才会升级到 604,然后再次降级到 404
这是我详细做的:
在文档根目录中我创建了 2 个文件。两个文件都有664权限; 所有者 = ec2-user 和组 = 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>');
全局.php
<?php
/**
* Created by PhpStorm.
* User: matteolatitude
* Date: 26/03/15
* Time: 12.36
*/
define('PHP_FILES_PATH', '/var/matteotest/');
然后我使用owner=root和group=root创建了/var/matteotest目录,权限为755。
然后在/var/matteotest 中我保存了 config.php;该文件只是一个测试;在实际应用程序中,我将使用它来存储例如数据库连接数据。 所有者 = root 且组 = root
配置.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;
}
我想知道
include($_SERVER["DOCUMENT_ROOT"].'/global.php')
似乎是一个不错且安全的选择?有没有更好更安全的方法?我的权限(以及所有者和组)是一个不错的选择,还是您会采用不同的方式?
最佳答案
1) Is include($_SERVER["DOCUMENT_ROOT"].'/global.php') seems to be a good and secure choice? Is there a bettere and more secure method?
当从根目录包含时,我更喜欢 include dirname(__FILE__) .'/global.php';
。有时我使用 __FILE__ 将根路径定义为常量。
关于php - 如何使用PHP include构建安全的环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29296398/