Я впервые пишу большое PHP-приложение (с настройкой) и задаюсь вопросом о мерах безопасности, которые следует предпринять в отношении разрешений.
setup.php использует fopen/fwrite для генерации config.php на основе данных POST, которые поступают из setup.php. Это работает, но, похоже, я не могу писать в config.php, пока не установлю для него разрешения на 777
.
Config.php по сути будет содержать учетные данные базы данных в переменных PHP (которые будут включены с помощью include()). Стоит ли оставлять это как есть 777
?
Мне интересно, нормально ли это или мне следует попросить пользователя изменить разрешения обратно на что-то вроде 655 (я не уверен).
решение1
Вам следует установить разрешения для файлов на те, которые необходимы для выполнения работы. Это может быть 777 для установки и 644 для запуска приложения.
Каждый раз при запуске приложения необходимо проверять, соответствуют ли разрешения (для критически важных файлов и путей) желаемым, а затем выдавать сообщение об ошибке и останавливать работу приложения, если они не соответствуют требованиям.
решение2
Многие приложения PHP требуют, чтобы вы установили config.php на 777 во время установки продукта. Я думаю, это вполне приемлемо, но пользователь должен быть предупрежден, что файл должен быть установлен обратно на 644 после завершения установки.
Другое решение — заставить пользователя жестко закодировать config.php с настройками базы данных. Однако это усложняет ситуацию для некоторых новых пользователей.