@developer007

Как безопасно развернуть php приложение?

Вот вы написали крутой проект который приносит деньги(пока только скрипт , но деньги приносить будет 100%).
В развертывание приложения вы так себе поэтому начинаете гуглить install php fpm ubuntu
ubuntu - это на впске в DO
с помощью гита клонируете репу
меняете конфиг в Nginx и всё работает.

На проект идет куча трафика. Спустя пару недель смотрите логи и там умные школо кулхацекры и не только пытаются сломать ваши скрипты. Залить шелл. Попробовать sql инъекцию, залить файл как то.
Появляется страх, что скрипт сопрут и опубликуют в паблике XXX NULLED SCRIPT BY (%**(#%&%(* или другой заголовок СЛИВ СКРИПТА ПРОЕКТА ХХХХХХ.

проект на yii и активно используется встроенная валидация.

Как 100% защититься от этого?
Какие права нужны?
В какую директорию желательно запихивать скрипты?
От какого юзера запускать nginx / php-fpm ?
Как обезопасить себя если юзер всё таки залил шелл в /public ?

А вы разворачиваете прод?
  • Вопрос задан
  • 235 просмотров
Решения вопроса 1
kotomyava
@kotomyava
Системный администратор
Как 100% защититься от этого?

Никак. Не бывает 100% защиты.


Какие права нужны?
Какие права нужны?
В какую директорию желательно запихивать скрипты?
От какого юзера запускать nginx / php-fpm ?

Не существует рецепта на все случаи жизни, тем более, который можно было бы изложить, не в виде большой книги, а ответе на вопрос. И всё куда сложнее, чем вы вероятно, думаете.

Но есть несколько советов:
Нужен квалифицированный администратор, который настроит и будет сопровождать сервер.
Крайне желателен анализ приложения специалистом по безопасности.
Есть WAF, которые могут решить часть проблем приложения, даже если о них не известно, и в простейшем случае, можно воспользоваться, например Cloudflare, т.к. поднимать такое ПО локально, часто накладно по ресурсам.

Ну а также, там, куда можно заливать файлы, должно быть запрещено выполнения кода, на уровне конфигурации веб сервера. Т.е. надо писать нормальные конфиги. В вашем случае, вообще-то всё довольно просто - у вас же только одна точка входа - index.php в webroot, вот только он и должен выполняться через php-fpm, а не все php файлы. Ну а места, куда заливать нельзя, и это не какой-то файловый кеш, должны быть защищены на уровне прав от возможности создания файлов пользователем, от которого запущен обработчик php. Т.е. должно соблюдаться правило, если что-то не является необходимым, оно запрещено.

Также - никакого лишнего софта на сервере. Никаких phpmyadmin, дырявых панелей, ftp. Всё снаружи закрыто фаерволом. Но это всё ваш админ должен сам знать, собственно, а раз вы задаёте этот вопрос, то он вам ох как нужен.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Sanes
@Sanes
Если религия не позволяет пользоваться шаредом и панелями, то вот вам сценарии на более или менее безопасное окружение. Смысл надеюсь поймете.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы