Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Программирование под Unix/Linux > функция проверки пути на допустимость |
Автор: boostcoder 23.1.2011, 14:40 |
всем привет. есть некоторый протокол, посредством которого, в виде jSON структур, юзер отсылает запрос на получение/аплоад файла. у юзера есть свой каталог. интересует, каким образом, можно проверить указанное юзером _file_path_ на допустимость? т.е. чтоб указанный юзером в запросе файл, находился только в подкаталогах юзера. к примеру, каталог юзера находится тут: /mnt/users/user1 нужно определить ситуацию, когда указанный юзером файл, находится не в его подкаталогах. так же, нужно чтоб проверка пути, производилась согласно возможным в *nix форматом записи: ~, $, ../.., /, и т.д... очень хочется узнать то, что такая функция уже имеется ![]() спасибо. |
Автор: null56 23.1.2011, 15:47 | ||
можно попробовать получать права файла или каталога, а потом проверять uid или guid пользователя, если он принадлежит, то добро, иначе низя, в этом случае, пользователь на сервере должен создавать файлы и каталоги от своего имени, чтобы структурам файловой системы (каталоги, папки) назначались верные права
|
Автор: boostcoder 23.1.2011, 16:06 |
пользователя, в терминах *nix, не существует. владельцем всех файлов является программа с которой общаются посредством протокола. |
Автор: boostcoder 23.1.2011, 16:28 |
на основании того, что все пути указываемые пользователем, не должны выходить за его каталог. к примеру: /mnt/users/user1 по этому, в топике, я не говорил о правах. если кратко - то есть имя юзера, и его каталог. нужна проверка имен/путей на принадлежность их к его каталогам. |
Автор: GrayCardinal 23.1.2011, 17:30 |
boostcoder, может realpath(3) + strcmp ? |
Автор: MAKCim 23.1.2011, 23:54 |
man 3 glob man 3 fnmatch может то, а может и нет ;) |
Автор: boostcoder 24.1.2011, 16:18 |
GrayCardinal, MAKCim, спасибо! то что надо ![]() |