URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID10
Нить номер: 2858
[ Назад ]

Исходное сообщение
"Безопасная работа web-интерфейса с конфигами сервера"

Отправлено anve , 15-Авг-06 16:17 
Попытаюсь описать суть проблемы:

Существует web-интерфейс для работы клиентов, пока на php. Клиенты делают некоторые изменения, которые затем сохраняются в базе.
Дальше должно происходить следующее: этот же или другой скрипт, получив данные из базы, формирует командный файл, а затем этот командный файл должен исполниться.

Понятно, что можно сформировать и запустить файл (shell-скрипт) чем-нибудь вроде system(), но возникает проблема: у того пользователя, под именем которого запустится файл должны быть права на соответствующие команды (если я правильно понимаю), а значит теоретически, например при взломе php-скрипта, недоброжелатель сможет исполнить всякую гадость.

Обьяснил конечно сумбурно. В общем смысл примерно такой как, например, в Cpanel: когда пользователь делает поддомен и меняются соответствующие конфиги dns. Т.е. каким образом можно изолировать клиентскую часть от серверной, но при этом при изменениях, сделанных клиентом через web-интерфейс сразу же происходили изменения и на сервере?
Как это все максимально безопасно реализовать или делать это на php вообще изврат? Как это сделано в Cpanel и вообще на чем она написана?

Если что-то подобное уже обсуждалось или есть другие интересные ссылки, постите плиз, т.е. поиски подобной информации пока что пользы не принесли.


Содержание

Сообщения в этом обсуждении
"Безопасная работа web-интерфейса с конфигами сервера"
Отправлено Асен Тотин , 16-Авг-06 16:14 
Привет,

Про CPanel не знаяю, у нас принят такй подход:

1. Web interface делает записи в базе данных, затем ставит соотвествующий маркер. Маркером может бытрь просто создание пустого файла в определенном месте или даже запись в определенной таблице в базе.

2. Исполняющий процесс запускается периодически и, находя маркер, делает то, что ему указано при наличие маркера. По исполении действия маркер стирается (или в базе помечается, что строка обработана). Тут можно пользоваться crontab-ом, можно свой daemon запустить, а если с файлам-маркерами работать, очень удобен supervise D. J. Bernstein-a.

WWell,


"Безопасная работа web-интерфейса с конфигами сервера"
Отправлено anve , 17-Авг-06 17:41 
Асен Тотин,

Спасибо за ответ, понятно, что запускать cron'ом скрипт можно, но здесь мы как-раз хотим избежать подобного - ведь делать слишком частый запуск как-то некрасиво имхо, а необходима практически мгновенная реакция сервера на новые параметры.

Есть немного другой вариант:
Скрипт, который работает с базой в конце должен инициировать работу другого скрипта, который, возможно, написан на другом языке и исполняется соответственно под другим демоном с другими правами и снаружи доступа к нему нет. Тоже несколько некрасиво.
Хотя в принципе наверное подход верный - было бы замечательно, если бы это все работало под одним процессом, но с разными правами.