Это мой первый 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-страниц из общей папки или не о чем беспокоиться ?? Спасибо.
Есть ли что-то, с чем мне следует быть осторожным (связанные с php-страницами в общей папке) @GaurangJoshi






Все, что вы должны опубликовать, например index.php, должно быть помещено в папку public_html. PHP-движок вашего веб-сервера обрабатывает php и отправляет только вывод.
Вам не может быть никакого вреда, если ваш веб-сервер настроен для обслуживания выходных данных php.
Если вы используете Apache, используйте файл .htaccess для дальнейшего ограничения доступа (например, индексации папок) к папке public_html.
Я думаю, что вопрос не в том, все ли безопасно, пока все правильно настроено, а в том, «что может произойти, если что-то пойдет не так, и как защититься от этого случая».
Точно @NicoHaase
Если вы хотите быть уверены, что ничто не может оставить ваш сервер незащищенным, даже в худшем случае, совершенно нормально указать корень документа на какую-то почти пустую папку (которая содержит только точку входа) и иметь бизнес-логику в другой папке.
Например, Фабьен Потенсье, создатель 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 к вашему собственному приложению. в очень специфических случаях).
Спасибо за ваш ответ @Nico Haase. Я знаю, что есть лучшее решение, чем мое. Но пока я должен сделать это максимально простым. Так что, по-твоему, я достаточно хорош, чтобы выходить в интернет??
Я так думаю - насколько я вижу, ваша установка вмещает сколько угодно файлов в public_html и более сложные части в resources - как эти папки называются не интересно. Единственное, что вы могли бы улучшить: почему в вашем public_html есть PHP-файлы три? Почему бы не использовать MVC: одну точку входа в качестве диспетчера между несколькими контроллерами?
Что ж, спросите об обратном: «процедурное кодирование» все еще хорошо? ;)
Да, вы можете хранить свои php-файлы в общей папке.