PHP and Exec ?????
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



PHP and Exec ????? Expand / Collapse
Автор
Сообщение
09.09.2006 2:16
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 15.08.2007 0:34
Сообщ.: 49, Visits: 465
Меня попросили написать сайт, примерно такого плана, что бы зарегистрированный на сайте пользователь у которого есть своя папка, мог закачать в эту папку Фортрановский файл и мог так же откомпилировать его с последующим запуском откомпилированного файла. Все прекрасно я сделал, и все работает как в песни, НО остался вопрос по безопасности, как не дать возможность пользователю закачать фортрановский файл с кодом который просто отформатировал бы диск или скопировал содержимое всех папок на диске к себе в папку, короче как ограничить этого пользователя в его правах.Запуск программы выполняю командой exec(). У меня на данный момент Window XP с Apache Web Server. Если это можно сделать на ISS то как или если у меня будет Unix ???
Сообщ. #904096
09.09.2006 13:42
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
В конфигурации Windows/Apache возможны два варианта:

  1. Создаем новую учетную запись, исключаем ее из всех групп. Затем настраиваем свойства сервиса Apache так чтобы он запускался от имени этой учетной записи. Предварительно понадобится настроить NTFS права для данного пользователя чтобы он имел доступ на чтение к каталогу Apache, права на чтение для каталога где находятся файлы сайта, права на запись в папку с лог-файлами и во временный каталог (%windir%\TEMP).

    Тогда программа запущенная из под сервиса Apache унаследует права родительского процесса и не сможет сильно набедокурить.

    Недостатком является наличие прав на запись в часть каталогов на диске. Это потенциально опасно.
  2. Написать или найти готовую программу-загрузчик. Она должна будет запускать процесс указанный в командной строке с правами ограниченного пользователя. Если делать самому, то можно сильно себя подстраховать используя Job object и restricted token.

В конфигурации с Unix для создания безопасной среды можно использовать Apache suExec. Разработчики правда предупреждают что его настройка непроста и должна выполняться опытными администраторами.

Сообщ. #904105
10.09.2006 21:51
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 15.08.2007 0:34
Сообщ.: 49, Visits: 465
Спасибо за подробный ответ!

А через команду runas в XP не как нельзя настроить?

Например, создать пользователя с ограниченными правами а потом runas /user:username program.exe ?

Сообщ. #904132
11.09.2006 9:42
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Надо пробовать. У runas нельзя пароль пользователя в командной строке задать поэтому придется использовать учетную запись без пароля. В WinXP/2003, кстати, учетная запись без пароля может входить на компьютер только с локальной консоли, из сети с ней войти не получится. В качестве замены runas можно взять бесплатную утилиту PsExec.
Сообщ. #904138
11.09.2006 13:09
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 15.08.2007 0:34
Сообщ.: 49, Visits: 465
Я использую команду runas с ключом /savecred
при первом запуске пароль попросит обязательно. Но только при первом. В следующий раз при запуске программы  runas /savecred /user:username progr.exe вводит пароль не нужно. А утилиту PsExec попробую.
Сообщ. #904157
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 8:54