Библиотека Рефераты Курсовые Дипломы Поиск
Библиотека Рефераты Курсовые Дипломы Поиск
сделать стартовой добавить в избранное
Кефирный гриб на сайте www.za4et.net.ru

Компьютеры, Программирование Компьютеры, Программирование

Безопасное программирование на Perl

Совок большой.
Длина 21,5 см. Расцветка в ассортименте, без возможности выбора.
21 руб
Раздел: Совки
Фонарь желаний бумажный, оранжевый.
В комплекте: фонарик, горелка. Оформление упаковки - 100% полностью на русском языке. Форма купола "перевёрнутая груша" как у
87 руб
Раздел: Небесные фонарики
Гуашь "Классика", 12 цветов.
Гуашевые краски изготавливаются на основе натуральных компонентов и высококачестсвенных пигментов с добавлением консервантов, не
170 руб
Раздел: 7 и более цветов

Дмитрий Громов Как избежать передачи пользовательских переменных оболочке ОС при вызове exec() и sys em()? В Perl вы можете запускать внешние программы различными путями. Вы можете перехватывать вывод внешних программ, используя обратные кавычки: $da e = `/bi /da e`; Вы можете открывать "туннель" (pipe) к программе: ope (SOR , " /usr/bi /sor /usr/bi /u iq"); Вы можете запускать внешние программы и ждать окончания их выполнения через sys em(): sys em "/usr/bi /sor < foo.i "; или вы можете запускать внешние программы без возврата управления с помощью exec(): exec "/usr/bi /sor < foo.i "; Все эти выражения являются опасными если используют данные, введенные пользователем, которые могут содержать метасимволы. Для sys em() и exec() существует синтаксическая возможность, позволяющая запускать внешние программы напрямую, без обращения к оболочке ОС. Если вы передаете внешней программе аргументы, представляющие собой не строку, а список, то Perl не будет использовать оболочку, и метасимволы не вызовут нежелательных побочных эффектов. Например: sys em "/usr/bi /sor ","foo.i "; Вы можете использовать эту особенность для того, чтобы открыть туннель, не обращаясь к оболочке ОС. Вызывая ope в магической последовательности символов -, вы запускаете копию Perl и открываете туннель (pipe) к этой копии. Дочерняя копия Perl затем немедленно запускае внешнюю программу, используя список аргументов для exec(). ope (SOR ," -") exec "/usr/bi /sor ",$uservariable; while $li e (@li es) { pri SOR $li e," "; } close SOR ; Для чтения из туннеля без обращения к оболочке можно использовать похожий способ, с последовательностью - : ope (GREP,"- ") exec "/usr/bi /grep",$userpa er ,$file ame; while () { pri "ma ch: $ "; } close GREP; Это те формы ope (), которые необходимо всегда использовать в случаях, когда в другой ситуации вы использовали бы перенаправление ope (piped ope ). Еще более хитрая возможность позволяет вам запускать внешние программы и обманывать их относительно их собственного названия. Это полезно при использовании программ, действия которых зависят от того, с использованием какого имени они запущены. Вот синтакс: sys em $настоящее имя "ложное имя","аргумент1","аргумент2" Например: $shell = "/bi /sh" sys em $shell "-sh","- orc" Этот пример запускает sh - оболочку операционной системы - с именем "-sh", заставляющим ее действовать интерактивно. Заметте, что настоящее имя программы должно храниться в виде переменной, и что между именем переменной и началом списка аргументов нет запятой. Можно записать эту команду более компактно: sys em { "/bi /sh" } "-sh","- orc" Что такое "проверки заразности" ( ai checks) в Perl? Как их включить? Как мы видели, одна из наиболее часто встречающихся проблем с безопасностью при программировании CGI - передача оболочке ОС пользовательских переменных без их проверки. Perl предлагает механизм проверки "заразности", который не позволяет этого делать. Любая переменная, которая проинициирована данными за пределами программы (включая данные из среды, стандартного ввода и командной строки) рассматривается как "заразная", и не может быть более использована за пределами программы.

Зараза может распространяться. Если вы используете зараженную переменную для присвоения значения другой переменной, вторая переменная также оказывается заражена. Зараженные переменные не могут быть использованы для вызова eval(), sys em(), exec() или piped ope (). Если вы попытаетесь это сделать, Perl прекращает работу и выводит предупреждение. Perl также откажется работать, если вы попытаетесь вызвать внешнюю программу, не установив явно значение переменной PA H. В версии 4 языка Perl проверка включается при использовании специальной версии интерпретатора, называющейся " ai perl": #!/usr/local/bi / ai perl В версии 5 - используйте флаг - при запуске интерпретатора: #!/usr/local/bi /perl - Ниже описано как "обеззараживать" (u ai ) переменные. Для более полного обсуждения вопроса можно обратиться к CGI/Perl ai Mode FAQ (автор - Gu her Birz iek). OK, я включил проверку заразности, как вы рекомендовали. Теперь мой скрипт прекращает работу с сообщением "I secure $E V{PA H} a li e XX" при каждом запуске! Даже если вы не доверяете переменной PA H при запуске внешних программ, существует возможность того, что это делает внешняя программа. Поэтому следует всегда включать такую строку в начале вашего скрипта, если вы используете ai checks: $E V{'PA H'} = '/bi :/usr/bi :/usr/local/bi '; Отредактируйте ее так, чтобы перечислить директории, в которых вы хотите искать. Мысль о вклюяении текущего директория (".") в состав переменной PA H является плохой идеей. Как "обеззаразить (u ai ) переменную? После того, как переменная заражена, Perl не даст вам возможности использовать ее в функциях sys em(), exec(), piped ope , eval(), обратных кавычках, или любой функции, которая влияет на что-либо за пределами программы (например - u li k). Вы не можете этого сделать даже если вы проверили переменную на содержание метасимволов или использовали команду r/// или s/// для удаления метасимволов. Единственный способ обеззаразить переменную - использовать операцию поиска по маске и извлечение совпадающей подстроки. Например, если переменная должна содержать адрес электронной почты, то извлечь обеззараженную копию адреса можно следующим образом: $mail address=~/(w )/; $u ai ed address = "$1@$2"; Такая маска позволит выделить адрес в форме "кому@куда", где элементы "кому" и "куда" могут включать литеры, точки и тире. Более того, "кому" не может начинаться с тире, используемого во многих программах как служебный символ командной строки. Я удаляю метасимволы из переменной, но Perl продолжает думать, что она заражена! Смотри выше ответ на этот вопрос. Единственный способ обеззаразить переменную - применить поиск по маске. Действительно ли небезопасна операция поиска $foo=~/$user variable/? Часто задача скрипта CGI на Perl состоит в получении от пользователя списка ключевых слов и использования их в операциях поиска по маске для нахождения совпадающих имен файлов (или чего - нибудь в этом роде). Само по себе это не опасно. Опасна оптимизация, которую некоторые программы Perl используют для ускорения поиска. При использовании переменной в операции поиска, выражение компилируется всякий раз при выполнении операции.

Для избежания перекомпилирования, занимающего время, можно использовать специальный флаг - o, что приведет к тому, что выражение будет откомпилировано только однажды: foreach (@files) { m/$user pa er /o; } Теперь, однако, Perl будет игнорировать любые изменения в переменной, что приведет к неправильной работе циклов такого рода: foreach $user pa er (@user pa er s) { foreach (@files) { pri if m/$user pa er /o; } } Для обхода этой проблемы программисты, пишущие на Perl, часто используют такой трюк: foreach $user pa er (@user pa er s) { eval "foreach (@files) { pri if m/$user pa er /o; }"; } Проблема здесь состоит в том, что в операторе eval() используется пользовательская переменная. Если переменная не подвергается тщательной проверке, то можно заставить eval() выполнить произвольный код на Perl. Для понимания того, чем это грозит, подумайте, что произойдет в случае, если переменная будет иметь следующее значение: "/; sys em 'rm '; /" Проверки заразности (см. выше) позволяют поймать потенциальную опасность в этой области. Вы можете выбирать между отказом от такого рода оптимизации, или тщательным обеззараживанием переменной перед использованием. Полезная возможность в Perl5 состоит в использовании Q и E для комментирования метасимволов так, чтобы они не были использованы: pri if m/Q$user pa er E/o; Мой скрипт CGI требует большие привелегии, чем он получает как пользователь obody. Как мне изменить идентификатор пользователя? Прежде всего, действительно ли это необходимо? Предоставление больших прав увеличивает риск и позволяет взломанному скрипту нанести больше вреда. Если вы хотите предоставить скрипту права пользователя roo , то сперва ОЧЕНЬ хорошо подумайте. Вы можете заставить скрипт выполняться с правами его владельца путем установки бита s: chmod u s foo.pl Вы можете предоставить ему права группы, к которой принадлежит владелец, установив бит s в поле группы: chmod g s foo.pl Однако, многие системы U ix содержат лазейку, позволяющую взламывать такие скрипты. Это касается только скриптов, а не компилированных программ. В таких системах попытка запуска скрипта на Perl, для которого были выставлены s биты, приведет к появлению сообщения об ошибке со стороны самого Perl. На таких системах вы имеете две возможности: Можно исправить ядро так, чтобы запретить установку этих битов для файлов скриптов. Perl тем не менее будет правильно определять эти биты и устанавливать идентификатор пользователя. Подробную информацию об этом можно найти в Perl faq: Вы можете поместить скрипт в оболочку, напмсанную на C. Обычно это выглядит так: #i clude void mai () { } После компилирования программы, выставте s биты. Программа будет выполняться с правами владельца, запускать интерпретатор Perl и выполнять скрипт, содержащийся в файле "foo.pl". Кроме того, можно запускать сам сервер с правами пользователя, достаточными для выполнения необходимых действий. Если вы используете сервер CER , то у вас есть возможность запускать сервер с разными правами для разных скриптов. См. документацию CER для получения дальнейшей информации.

Например, если в первый раз вы проводили ее до дому, вам придется делать это каждую встречу. Никогда в начальный период знакомства не пытайтесь увидеть человека, если он об этом не знает (например, караулить около дома). (…) Техника безопасности Это не то, о чем вы подумаете в первый момент, прочтя название главы. Имеются в виду меры предупреждения кризисных ситуаций. – Никогда никому не рассказывайте о своих прошлых знакомствах. Кто бы он ни был – авось пригодится в дальнейшем. – Старайтесь не записывать адресов, телефонов на случайных бумажках – она может выпасть или появиться на свет откуда-нибудь и испортить всю малину. В тоже время не записывайте те же данные в общие записные книжки. Потом эти надписи тяжело удалять. – Вывод – пишите всегда в одно определенное место, которое легко контролировать и периодически удалять компрометирующие материалы. (…) * * * Горин: Суждение о ценности подобных трудов вы можете вынести самостоятельно. А теперь перейдем к тому, что практически непосредственно предшествовало появлению в эффективном «пикапе» OSV и его психологического подхода, основанного на нейро-лингвистическом программировании (НЛП)

1. Расчёт статистических и вероятностных показателей безопасности полётов

2. Меры безопасности при стрельбе из стрелкового оружия и обращении с боеприпасами

3. Безопасность жизнедеятельности (Безпека життєдіяльності)

4. Лазерная безопасность

5. Безопасность жизнедеятельности

6. Пожарная безопасность
7. Обеспечение национальной безопасности РК в контексте интеграционных связей стран СНГ (с 1991-2001г.г.)
8. Эволюция системы европейской безопасности от СБСЕ к ОБСЕ

9. Безопасность жизнедеятельности

10. Региональные проблемы экологической безопасности на полуострове Ямал

11. Оружие массового поражения: фактор национальной безопасности или средство устрашения (На примере отношений США и России в ХХ веке)

12. Безопасность информационных технологий

13. Информационные технологии в экономике. Информационная безопасность в сетях ЭВМ

14. Анализ системы безопасности Microsoft Windows 2000 Advanced Server и стратегий ее использования

15. Периферийное устройство ПЭВМ, Характеристика этапов подготовки и решения задач на ПЭВМ в любой системе программирования. Электронная почта, особенности применения

16. Языки и технология программирования. Начальный курс /Pascal/

Пенал школьный, цвет черный.
Пенал школьный без наполнения, два отделение, металлическая "собачка" со шнурком, обработанные внутренние швы, два внутренних
531 руб
Раздел: Без наполнения
Корзина "Плетенка" с крышкой, 35х29х17,5 см (коричневая).
Материал: пластик. Ширина: 29 см. Длина: 35 см. Высота: 17,5 см. Цвет: коричневый.
303 руб
Раздел: Корзины для стеллажей
Увлекательная настольная игра "Цветариум", новая версия.
Игроки будут совершать много интересных действий: высаживать цветы на клумбах, выкорчёвывать их в случае необходимости, устраивать своим
712 руб
Раздел: Карточные игры

17. Объектно-ориентированное программирование на С с использованием библиотеки OpenGL

18. Объективное программирование

19. Обучение начальных курсов методам программирования на языке Turbo Pascal

20. Применение методов линейного программирования в военном деле. Симплекс-метод

21. Аналитический обзор книги "Программирование на языке ассемблера..."

22. Математические методы и языки программирования: симплекс метод
23. Ответы на вопросы по курсу "Системное программирование" (Шпаргалка)
24. Разработка базы данных `ДЕКАНАТ` в среде программирования "Delphi"

25. Программирование на "СИ" (ТХТ, СИ)

26. 10 задач с решениями программированием на Паскале

27. Программирование и алгоритмические языки

28. Использование макросов для программирования в MS ACCESS

29. Обучающая программа "Графика" программированию в графическом режиме на языке turbo-pascal 7.x

30. Язык программирования Паскаль и ветвление

31. Сравнительный анализ языков программирования JavaScript и VBScript

32. Программирование на Object Pascal в среде Delphi

Фоторамка (коллаж) на 5 фото (16x16/10x15/18x13 см), 48x3x34 см.
Фоторамка на 5 фото. Размер: 48x3x34 см. Размер фото: 16x16/10x15/18x13 см. Материал: пластик.
458 руб
Раздел: Мультирамки
Шарики для бассейна, 50 штук.
Набор разноцветных шариков для наполнения детского бассейна. Диаметр шара 7 см. Материал: безопасный, экологически чистый пластик.
360 руб
Раздел: Шары для бассейна
Карандаши акварельные "Jumbo", 12 цветов, с точилкой.
Акварельные цветные карандаши с утолщенным корпусом 10 мм, с толщиной грифеля 5 мм. Длина карандаша: 17 cм. Пригодны для детей младшего
376 руб
Раздел: Акварельные

33. Общая терминология программирования

34. Разработка игровой программы на языке программирования Turbo Pascal

35. Тест на языке программирования Visual Basic

36. Учебник по программированию на Java для мобильных устройств

37. Учебник по Perl для системного администратора

38. Структура и программирование ПЛИС фирмы Altera в САПР Quartus II, её применение в лабораторном стенде
39. Практика оператора (WINDOWS 95, MICROSOFT WORD 97, MATHCAD, ЯЗЫКИ ПРОГРАММИРОВАНИЯ, ЭЛЕКТРОННЫЕ КНИГИ, VISIO, Norton Utilites 3.0 for Windows 95)
40. Эволюция языков программирования

41. Программирование на языке Турбо Паскаль

42. Исследование уровня безопасности операционной системы Linux

43. Лабораторная работа №4 по "Основам теории систем" (Послеоптимизационный анализ задач линейного программирования)

44. Лабораторная работа №2 по "Основам теории систем" (Решение задач линейного программирования симплекс-методом. Варианты разрешимости задач линейного программирования)

45. Решение задач линейного программирования

46. Решение задачи линейного программирования

47. Холодовая цепь, безопасное восстановление вакцин. Правила хранения и транспортировка прививочных препаратов. Календарь прививок

48. Инфекционная безопасность пациента и медработников. Инфекционный контроль

Цветные акварельные карандаши "Lyra Osiris Aquarell", 24 цвета.
Цветные акварельные карандаши, треугольные с кистью, диаметр грифеля 3,3 мм.
753 руб
Раздел: 13-24 цвета
Подушка детская Dream Time.
Приятная на ощупь подушка сделан из материала, который отличается надежностью, прочностью и легкостью ухода. В качестве наполнителя
698 руб
Раздел: Подушки для детей
Пенал школьный "Космос".
Пенал школьный с откидной планкой, без наполнения. Одно отделение, эластичные держатели для канцелярских принадлежностей, в прозрачном
460 руб
Раздел: Без наполнения

49. Федеральная Служба Безопасности

50. Компьютерная преступность и компьютерная безопасность

51. Производственная Экологическая Безопасность (ПЭБ)

52. Вопросы лазерной безопасности

53. Вопрос радиационной безопасности в экологическом образовании в средней школе

54. Совет Безопасности ООН и его роль в обеспечении мира и всеобщей безопасности
55. Автомобиль. Рабочие процессы и экологическая безопасность двигателя
56. Техника Безопасности (лекции)

57. Безопасность взаимоотношения с противоположным полом с точки зрения мужчин

58. Лазерная безопасность

59. Спутниковые системы обеспечения безопасности мореплавания

60. Нейролингвистическое программирование /краткий обзор/

61. Основы безопасности жизни (ОБЖ)

62. Технология производства, прогнозирования, программирования и планирования урожаев

63. Исламский радикализм и его воздействие на национальную безопасность России

64. Вопрос радиационной безопасности в экологическом образовании в средней школе

Настольная игра "Фефекты фикции".
Увлекательная детская игра для развития речи и творческого мышления, разработанная профессиональными логопедами и детьми. В комплекте:
990 руб
Раздел: Русский язык, слова, речь
Шторка антимоскитная, черная.
Размеры: 100х220 см. Препятствует проникновению насекомых. Не нарушает естественную циркуляцию воздуха. Подходит для любых типов дверных
352 руб
Раздел: Сетки противомоскитные
Альбом "Мои школьные годы" (книга с карманами на 11 лет).
Перед Вами то, что каждая семья так долго ждала – красивое, качественное, креативное школьное портфолио. Да еще и на все школьные годы!
842 руб
Раздел: Портфолио

65. Программирование и планирование в ситуациях коллективного взаимодействия

66. Информационная безопасность в бизнесе

67. Риск в задачах линейного программирования

68. Методы экономического программирования

69. Проблемы экономической безопасности России в условиях перехода к рынку

70. Национальная безопасность на рубеже веков
71. Национальная безопасность и военная политика России
72. Роль ОБСЕ в поддержании европейской безопасности

73. Безопасность файловых ресурсов сети Windows 2000

74. М.И. Котик «Психология и безопасность»

75. Мерчандайзинг как программирование поведения покупателя

76. Транспортная задача линейного программирования

77. Динамическое программирование (задача о загрузке)

78. Линейное и динамическое программирование

79. Система программирования squeak smalltalk –новый этап развития языка программирования смолток

80. Эффективность и безопасность лекарственных средств, применяемых при ОРВИ и гриппе

Игра логическая "IQ-Элемент".
Q-Элемент - игра-головоломка для одного игрока. Суть игры: расположить на игровом поле все детали, чтобы поверхность была ровная, без
544 руб
Раздел: Игры логические
Набор самоклеящихся листов пористой резины, А4, 10 цветов, толщина 2 мм (10 листов).
Самоклеящаяся пористая резина для творчества. Плотные листы, насыщенные цвета. Прочный клейкий слой. Легко принимает форму. Предназначена
323 руб
Раздел: Прочее
Набор доктора в чемодане.
В наборе: шприц, шапочка из картона, очки, грелка, коробочка "Витамины", бейдж, градусник, лупа, 2 пинцета, ножницы - 2 штуки,
310 руб
Раздел: Наборы доктора

81. Надзор за безопасностью вакцин: система учёта неблагоприятных событий по вакцинам (СУНСВ)

82. Безопасность продуктов

83. Организация по безопасности и сотрудничеству в Европе (ОБСЕ)

84. Попытка создания системы коллективной безопасности в Европе накануне 2 МВ

85. Влияние гигантских волн на безопасность морской добычи и транспортировки углеводородов

86. Экологически безопасные способы хранения сельхозпродукции
87. Методологические аспекты обеспечения безопасности сложных технических объектов в условиях ограниченных ресурсов
88. Рабочие процессы и экологическая безопасность автомобильных двигателей

89. Макроэкономическая стабилизация – условие глобальной эконо-мической безопасности

90. Анализ риска - основа для решения проблем безопасности населения и окружающей среды

91. Безопасность

92. Автоматизированния система обучения программированию

93. Особенности программированного обучения

94. Культура как фактор национальной безопасности

95. Роль органов государственной безопасности во внутрипартийной борьбе 1920-30-х гг.

96. Двадцать первый век и проблемы информационной безопасности в России

Пазл "Арктика", 75 элементов.
Яркий красочный пазл познакомит ребенка с удивительным миром животных Северного полюса. Это и белые медведи, и морские котики, и белый
548 руб
Раздел: Пазлы (54-99 элементов)
Подгузники-трусики "Pampers. Pants. Джамбо", Maxi (9-15 кг), 52 штуки.
Для активных и любознательных мальчиков и девочек так важен комфорт, поэтому Pampers разработал универсальные подгузники-трусики Pampers
1117 руб
Раздел: Более 11 кг
Бумага для принтера "Ballet Classic", формат А3, 500 листов.
Бумага Ballet Classic имеет категорию качества «В», что позволяет использовать ее при создании документации различного типа. Обладая
502 руб
Раздел: Формата А3 и больше

97. Право международной безопасности

98. Об утверждении Наставления по работе дорожно-патрульной службы Государственной инспекции безопасности дорожного движения

99. Преступления против общественной безопасности


Поиск Рефератов на сайте za4eti.ru Вы студент, и у Вас нет времени на выполнение письменных работ (рефератов, курсовых и дипломов)? Мы сможем Вам в этом помочь. Возможно, Вам подойдет что-то из ПЕРЕЧНЯ ПРЕДМЕТОВ И ДИСЦИПЛИН, ПО КОТОРЫМ ВЫПОЛНЯЮТСЯ РЕФЕРАТЫ, КУРСОВЫЕ И ДИПЛОМНЫЕ РАБОТЫ. 
Вы можете поискать нужную Вам работу в КОЛЛЕКЦИИ ГОТОВЫХ РЕФЕРАТОВ, КУРСОВЫХ И ДИПЛОМНЫХ РАБОТ, выполненных преподавателями московских ВУЗов за период более чем 10-летней работы. Эти работы Вы можете бесплатно СКАЧАТЬ.