Как использовать PHP include для создания безопасной среды?

Я думаю, что это простой вопрос, но я хотел бы иметь правильное видение проблемы.

Я создал экземпляр EC2 на Amazon, используя Amazon Linux AMI.
Затем я установил Apache и php55 как в соответствии с инструкциями на http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-LAMP.html. Я также установил права на каталоги / 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, в котором есть один файл configuraton config.php, в котором мы храним некоторую важную информацию для безопасности приложения, такую ​​как учетные данные базы данных, критерии входа в систему.
  • Чтобы защитить его, я поместил config.php в каталог «/ matteotest» в / var / и установил 755; Я создал / matteotest вне корня документа для повышения безопасности
  • В некоторых файлах я включил config.php
  • config.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>');

global.php

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

Затем я создал / var / matteotest dir с владельцем = root и group = root с разрешением 755.

Затем в / var / matteotest я сохранил config.php; этот файл только тест; в реальном приложении я буду использовать его для хранения, например, данных подключения БД.
владелец = корень и группа = корень

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. Является include($_SERVER["DOCUMENT_ROOT"].'/global.php') кажется хорошим и безопасным выбором? Есть ли лучший и более безопасный метод?

  2. Являются ли мои разрешения (а также владелец и группы) хорошим выбором, или вы сделали бы это по-другому?

-1

Решение

1) Включение ($ _ SERVER [«DOCUMENT_ROOT»]. ‘/ Global.php’) представляется
хороший и безопасный выбор? Есть ли лучший и более безопасный метод?

я предпочитаю include dirname(__FILE__) .'/global.php'; при включении от root. Иногда я определяю корневой путь как постоянный, используя __FILE__,

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru