![]() |
Модераторы: xvr |
![]() ![]() ![]() |
|
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 16 Всего: 110 |
всем привет.
есть некоторый протокол, посредством которого, в виде jSON структур, юзер отсылает запрос на получение/аплоад файла. у юзера есть свой каталог. интересует, каким образом, можно проверить указанное юзером _file_path_ на допустимость? т.е. чтоб указанный юзером в запросе файл, находился только в подкаталогах юзера. к примеру, каталог юзера находится тут: /mnt/users/user1 нужно определить ситуацию, когда указанный юзером файл, находится не в его подкаталогах. так же, нужно чтоб проверка пути, производилась согласно возможным в *nix форматом записи: ~, $, ../.., /, и т.д... очень хочется узнать то, что такая функция уже имеется ![]() спасибо. |
|||
|
||||
null56 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 721 Регистрация: 19.3.2008 Репутация: 4 Всего: 12 |
можно попробовать получать права файла или каталога, а потом проверять uid или guid пользователя, если он принадлежит, то добро, иначе низя, в этом случае, пользователь на сервере должен создавать файлы и каталоги от своего имени, чтобы структурам файловой системы (каталоги, папки) назначались верные права
Это сообщение отредактировал(а) null56 - 23.1.2011, 15:49 |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 16 Всего: 110 |
пользователя, в терминах *nix, не существует. владельцем всех файлов является программа с которой общаются посредством протокола. |
|||
|
||||
null56 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 721 Регистрация: 19.3.2008 Репутация: 4 Всего: 12 |
тогда на основании чего осуществлять проверку? если пользователя нет.. получается у тебя есть какое - то имя и ТОЛЬКО имя, тогда о каких проверках может идти речь, если никс не знает о пользователе и соответсвенно о его каталогах? |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 16 Всего: 110 |
на основании того, что все пути указываемые пользователем, не должны выходить за его каталог. к примеру: /mnt/users/user1 по этому, в топике, я не говорил о правах. если кратко - то есть имя юзера, и его каталог. нужна проверка имен/путей на принадлежность их к его каталогам. |
|||
|
||||
GrayCardinal |
|
|||
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 Репутация: 8 Всего: 58 |
boostcoder,
может realpath(3) + strcmp ? |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
man 3 glob
man 3 fnmatch может то, а может и нет ;) -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 16 Всего: 110 |
GrayCardinal, MAKCim, спасибо! то что надо
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Программирование под Unix/Linux" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |