@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
Если религия не позволяет пользоваться шаредом и панелями, то вот вам сценарии на более или менее безопасное окружение. Смысл надеюсь поймете.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
29 мар. 2024, в 10:00
10000 руб./за проект
29 мар. 2024, в 09:59
750 руб./в час
29 мар. 2024, в 09:55
50000 руб./за проект