MaterStudiorum.ru - домашняя страничка студента.
Минимум рекламы - максимум информации.


Авиация и космонавтика
Административное право
Арбитражный процесс
Архитектура
Астрология
Астрономия
Банковское дело
Безопасность жизнедеятельности
Биографии
Биология
Биология и химия
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
Валютные отношения
Ветеринария
Военная кафедра
География
Геодезия
Геология
Геополитика
Государство и право
Гражданское право и процесс
Делопроизводство
Деньги и кредит
Естествознание
Журналистика
Зоология
Издательское дело и полиграфия
Инвестиции
Иностранный язык
Информатика
Информатика, программирование
Исторические личности
История
История техники
Кибернетика
Коммуникации и связь
Компьютерные науки
Косметология
Краткое содержание произведений
Криминалистика
Криминология
Криптология
Кулинария
Культура и искусство
Культурология
Литература и русский язык
Литература(зарубежная)
Логика
Логистика
Маркетинг
Математика
Медицина, здоровье
Медицинские науки
Международное публичное право
Международное частное право
Международные отношения
Менеджмент
Металлургия
Москвоведение
Музыка
Муниципальное право
Налоги, налогообложение
Наука и техника
Начертательная геометрия
Новейшая история, политология
Оккультизм и уфология
Остальные рефераты
Педагогика
Полиграфия
Политология
Право
Право, юриспруденция
Предпринимательство
Промышленность, производство
Психология
Психология, педагогика
Радиоэлектроника
Разное
Реклама
Религия и мифология
Риторика
Сексология
Социология
Статистика
Страхование
Строительные науки
Строительство
Схемотехника
Таможенная система
Теория государства и права
Теория организации
Теплотехника
Технология
Товароведение
Транспорт
Трудовое право
Туризм
Уголовное право и процесс
Управление
Управленческие науки
Физика
Физкультура и спорт
Философия
Финансовые науки
Финансы
Фотография
Химия
Хозяйственное право
Цифровые устройства
Экологическое право
Экология
Экономика
Экономико-математическое моделирование
Экономическая география
Экономическая теория
Эргономика
Этика
Юриспруденция
Языковедение
Языкознание, филология
    Начало -> Информатика, программирование -> Безопасное программирование на Perl

Название:Безопасное программирование на Perl
Просмотров:65
Раздел:Информатика, программирование
Ссылка:Скачать(8 KB)
Описание:Как избежать передачи пользовательских переменных оболочке ОС при вызове exec() и system().

Университетская электронная библиотека.
www.infoliolib.info

Часть полного текста документа:

Безопасное программирование на Perl
    Дмитрий Громов
    Как избежать передачи пользовательских переменных оболочке ОС при вызове exec() и system()?
    В Perl вы можете запускать внешние программы различными путями. Вы можете перехватывать вывод внешних программ, используя обратные кавычки:
    $date = `/bin/date`;
    Вы можете открывать "туннель" (pipe) к программе:
    open (SORT, " | /usr/bin/sort | /usr/bin/uniq");
    Вы можете запускать внешние программы и ждать окончания их выполнения через system():
    system "/usr/bin/sort < foo.in";
    или вы можете запускать внешние программы без возврата управления с помощью exec():
    exec "/usr/bin/sort < foo.in";
    Все эти выражения являются опасными если используют данные, введенные пользователем, которые могут содержать метасимволы. Для system() и exec() существует синтаксическая возможность, позволяющая запускать внешние программы напрямую, без обращения к оболочке ОС. Если вы передаете внешней программе аргументы, представляющие собой не строку, а список, то Perl не будет использовать оболочку, и метасимволы не вызовут нежелательных побочных эффектов. Например:
    system "/usr/bin/sort","foo.in";
    Вы можете использовать эту особенность для того, чтобы открыть туннель, не обращаясь к оболочке ОС. Вызывая open в магической последовательности символов |-, вы запускаете копию Perl и открываете туннель (pipe) к этой копии. Дочерняя копия Perl затем немедленно запускае внешнюю программу, используя список аргументов для exec().
    open (SORT,"|-") || exec "/usr/bin/sort",$uservariable;
    while $line (@lines) {
    print SORT $line,"\n";
    }
    close SORT;
    Для чтения из туннеля без обращения к оболочке можно использовать похожий способ, с последовательностью -|:
    open(GREP,"-|") || exec "/usr/bin/grep",$userpattern,$filename;
    while () {
    print "match: $_";
    }
    close GREP;
    Это те формы open(), которые необходимо всегда использовать в случаях, когда в другой ситуации вы использовали бы перенаправление open (piped open).
    Еще более хитрая возможность позволяет вам запускать внешние программы и обманывать их относительно их собственного названия. Это полезно при использовании программ, действия которых зависят от того, с использованием какого имени они запущены.
    Вот синтакс:
    system $настоящее_имя "ложное_имя","аргумент1","аргумент2"
    Например:
    $shell = "/bin/sh"
    system $shell "-sh","-norc"
    Этот пример запускает sh - оболочку операционной системы - с именем "-sh", заставляющим ее действовать интерактивно. Заметте, что настоящее имя программы должно храниться в виде переменной, и что между именем переменной и началом списка аргументов нет запятой.
    Можно записать эту команду более компактно:
    system { "/bin/sh" } "-sh","-norc"
    Что такое "проверки заразности" (taint checks) в Perl? Как их включить?
    Как мы видели, одна из наиболее часто встречающихся проблем с безопасностью при программировании CGI - передача оболочке ОС пользовательских переменных без их проверки. Perl предлагает механизм проверки "заразности", который не позволяет этого делать. Любая переменная, которая проинициирована данными за пределами программы (включая данные из среды, стандартного ввода и командной строки) рассматривается как "заразная", и не может быть более использована за пределами программы. ............




Нет комментариев.



Оставить комментарий:

Ваше Имя:
Email:
Антибот:  
Ваш комментарий:  



Похожие работы:

Название:Особенности цветного проявления, оценка качества аппаратуры и программного обеспечения
Просмотров:169
Описание: Содержание фотография цветное проявление качество аппаратура 1.Сущность цветной фотографии 2.Особенности качества БРЭА класса Hi-End Список использованной литературы   1.Сущность цветной фотографи

Название:Оценка условий движения на подходах к перекрестку и программа светофорного регулирования
Просмотров:176
Описание: Оценка условий движения на подходах к перекрестку и программа светофорного регулирования Условия движения на подходах к перекрестку № п/п Показатель Подходы 1 Длина контролируемого

Название:Образование Директории и ее программные положения
Просмотров:206
Описание: Контрольная работа по курсу История Украины Тема: «Образование Директории и ее программные положения» Севастополь 2010г. План Введение 1 Образо

Название:Расчет гидропривода многоцелевого сверлильно-фрезерно-расточного станка с числовым программным управлением
Просмотров:92
Описание: Содержание 1. Введение         1.1 Описание гидравлической схемы станка 1.2 Описание механизма расфиксации магазина 1.3 Описание гидропривода механизма расфиксации магазина 2. Расчет и выбор элементов г

Название:Язык Paskal. Основные элементы языка. Структура программы
Просмотров:79
Описание: Содержание   Введение 1. Структура программы 2. Алфавит языка 3. Простейшие конструкции 4. Выражения 5. Типы данных 6. Операции Заключение Литература     Введение Тема реферата "Я

 
     

Вечно с вами © MaterStudiorum.ru