Безопасно ли хранить мои веб-страницы (страницы php) в папке public_html на рабочем сервере? - PullRequest
0 голосов
/ 12 февраля 2019

Это мой первый php проект, и я собираюсь сделать его онлайн очень скоро.Недавно я прочитал несколько статей о том, как не хранить php-скрипты внутри общедоступной папки, потому что, если сервер не настроен правильно, php-скрипты могут отображаться как чистый текст, и это представляет большую проблему для безопасности, если эти скрипты содержат конфиденциальную информацию (например, учетные данные БД и т. Д.).).Но я верю, я не должен беспокоиться.Поскольку мои php-страницы в основном состоят из нескольких include / require.Вот пример:

home.php

<?php
require_once ('../resources/app_config.php');
require_once ('../resources/includes/functions.php');
require_once ('../resources/includes/header.php');
?>
<body>
The body elements...
</body>
<?php
require_once ('../resources/includes/footer.php');
?>

Вот структура каталогов моего проекта:

resources
  |___ app_config.php
  |___ includes
       |___ functions.php
public_html
  |___ css_dir
  |___ js_dir
  |___ images_dir

  index.php
  home.php
  profile.php

, поэтому мой вопрос, должен ли я быть обеспокоен перемещением моих страниц php из публичной папкиили не к чему беспокоиться ??Спасибо.

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

Если вы хотите быть уверены, что ничто не может оставить ваш сервер незащищенным, даже в худшем случае, вполне нормально указать корневой каталог документа на какую-то почти пустую папку (которая содержит только точку входа) и иметь бизнес-логику вдругая папка.

Например, Fabien Potencier, создатель Symfony, предлагает следующее в http://fabien.potencier.org/symfony4-directory-structure.html:

  • Исходный код в src/
  • Веб-файлахв public/

Таким образом, даже если ваш PHP-процесс завершится неудачно, но ваш веб-сервер по-прежнему обслуживает файлы из public, никто не сможет прочитать больше, чем простую загрузку (еще раз примерSymfony: их рекомендуемый index.php требует лишь небольших изменений от https://github.com/symfony/recipes/blob/master/symfony/framework-bundle/4.2/public/index.php до вашего собственного приложения в очень специфических случаях).

0 голосов
/ 12 февраля 2019

Все, что вы должны опубликовать, например index.php, должно быть помещено в папку public_html.Механизм php вашего веб-сервера обрабатывает php и отправляет только выходные данные.

На вашем пути не может быть никакого вреда, если ваш веб-сервер настроен для обслуживания выходных данных php.

Если вы используете Apache, используйте файл .htaccess, чтобы дополнительно ограничить доступ (например, индексирование папок) к папке public_html.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...