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

标签 php linux security amazon-web-services amazon-ec2

我认为这是一个简单的问题,但我希望对这个问题有一个正确的认识。

我使用 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;
}

我想知道

  1. include($_SERVER["DOCUMENT_ROOT"].'/global.php') 似乎是一个不错且安全的选择?有没有更好更安全的方法?

  2. 我的权限(以及所有者和组)是一个不错的选择,还是您会采用不同的方式?

最佳答案

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/

相关文章:

javascript - 这是我的代码,我想添加日期选择器事件,它根据日期给出特定记录

php - MySQL 和 date() 查询

linux - QT - 部署 C++ 应用程序

security - 从 EJB 调用 HTTP 时如何传播 WebSphere 安全 token

c# - 如何在RequireAssersion中访问HttpContext和Request?

security - 服务器上的密文

php - 使用 PHP 在新选项卡中打开 PDF

php - xdebug 配置显示错误版本的 php

linux - 如何在 .bashrc "sudo vi/etc/hosts"中添加此命令的别名

linux - 我的 svn 状态显示 “G” 。我该如何解决?