22.3.2. Разбор имен файлов

22.3.2. Разбор имен файлов

Абсолютно обычным действием для привилегированных приложений является предоставление доступа к файлам ненадежным пользователям и разрешение этим пользователям передавать имена файлов, к которым необходим доступ. Хорошим примером служит Web-сервер. URL-адрес HTTP содержит имя файла, полученное сервером как запрос на передачу удаленному (ненадежному) пользователю. На Web-сервере необходимо убедиться, что возвращаемый файл — это именно тот, который был сконфигурирован на отправку, а также внимательно проверить правильность имен файлов.

Представьте Web-сервер, обслуживающий файлы из home/httpd/html, выполняющий это посредством простого добавления имени файла из URL, который требуется предоставить, концу /home/httpd/html. Такой процесс дает правильный файл, однако это также позволяет удаленным пользователям увидеть любой файл системы, к которой Web-сервер имеет доступ, просто запросив, к примеру, файл ../../.. /etc/passwd. Подобные каталоги .. необходимо явно проверять и отклонять. Системный вызов chroot() предоставляет хороший способ, позволяющий сделать обработку имен файлов в программах более простой.

Если имена файлов передаются в другие программы, то необходима еще более тщательная проверка. Например, если в имени файла используется начальный символ -, то весьма вероятно, что другая программа интерпретирует его как опцию командной строки.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

8.4. Разбор полетов

Из книги Разгони свой сайт автора Мациевский Николай

8.4. Разбор полетов В этом разделе некоторые наиболее посещаемые проекты Рунета будут рассмотрены с точки зрения клиентской оптимизации. Основной целью каждого проводимого ниже анализа является показать на рабочих примерах, каким именно образом можно ускорить загрузку


5.7.7 Раскрытие шаблонов имен файлов и каталогов (Pathname Expansion)

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл

5.7.7 Раскрытие шаблонов имен файлов и каталогов (Pathname Expansion) Подстановки имен путей и файлов (Pathname expansion) используются для того, чтобы с помощью краткого образца или шаблона указать несколько имен файлов (или каталогов), соответствующих данному шаблону. После разделения


Поддержка имен файлов Windows

Из книги C++. Сборник рецептов автора Диггинс Кристофер

Поддержка имен файлов Windows В системах Linux и Windows действуют разные соглашения по именованию файлов. Если в вашей сети, кроме Windows, присутствуют также клиенты DOS, то при настройке Samba следует учесть, что правила именования DOS-файлов отличаются от правил, принятых не только в


2.4. Предотвращение конфликта имен с помощью пространств имен

Из книги Искусство программирования на языке сценариев командной оболочки автора Купер Мендель

2.4. Предотвращение конфликта имен с помощью пространств имен ПроблемаВ несвязанных между собой модулях обнаружены конфликтующие имена или требуется заранее избежать возможности таких конфликтов, создав логические группы кода.РешениеДля структурирования кода


3.4.5. Шаблоны имен файлов

Из книги Linux программирование в примерах автора Роббинс Арнольд

3.4.5. Шаблоны имен файлов Этот механизм позволяет не перечислять похоже выглядящие имена файлов и каталогов, а указать на целую группу имен, задав краткий образец. Перед отправкой команды на выполнение оболочка раскрывает шаблон, то есть заменяет образец всеми именами,


Пример 12-43. Генератор имен файлов

Из книги Инфобизнес за один день автора Ушанов Азамат

Пример 12-43. Генератор имен файлов #!/bin/bash# tempfile-name.sh: Генератор имен временных файловBASE_STR=`mcookie` # 32-символьный (128 бит) magic cookie.POS=11 # Произвольная позиция в строке magic cookie.LEN=5 # $LEN последовательных символов.prefix=temp # В конце концов это временный ("temp")


18.2. Globbing -- Подстановка имен файлов

Из книги Linux и UNIX: программирование в shell. Руководство разработчика. автора Тейнсли Дэвид

18.2. Globbing -- Подстановка имен файлов Bash, сам по себе, не распознает регулярные выражения. Но в сценариях можно использовать команды и утилиты, такие как sed и awk, которые прекрасно справляются с обработкой регулярных выражений.Фактически, Bash может выполнять подстановку имен


2.3. Разбор опций: getopt() и getopt_long()

Из книги автора

2.3. Разбор опций: getopt() и getopt_long() Примерно в 1980-х группа поддержки Unix для System III в AT&T заметила, что каждая программа Unix использовала для разбора аргументов свои собственные методики. Чтобы облегчить работу пользователей и программистов, они разработали большинство из


5. Разбор успеха по косточкам

Из книги автора

5. Разбор успеха по косточкам В прошлом у вас, вероятно, были проблемы, но сейчас вы добились результата. Путь к успеху можно оформить в виде отдельного кейса. Разложите по полочкам, как вы добились