П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

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

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 3494 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 6097 раз(а).

Учебник HTML.
Просмотров 3257 раз(а).

Руководство по PHP5.
Просмотров 5483 раз(а).

Хостинг через призму DNS.
Просмотров 4118 раз(а).

Подборка текстов стандартных документов.
Просмотров 55760 раз(а).

Учебник PHP - Самоучитель
Просмотров 3076 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 5326 раз(а).

Внешние атаки...
Просмотров 3815 раз(а).

Учебник PHP.
Просмотров 2815 раз(а).

SSI в примерах.
Просмотров 37450 раз(а).






 
 
| Добавить в избранное | Сделать стартовой Project.Net.Ru | Помощь





Программирование на Perl

Опции warning и tainting

Программируя на Perl, используйте опцию w или "use warnings;" (Perl 5.6.0 или позже), они предупредят вас о потенциальных проблемах, таких как неинициализированные переменные и устаревшие выражения/функции.

Опция T (taint mode) предоставляет более высокий уровень безопасности. Этот режим инициирует различные проверки. Самая важная касается возможного загрязнения (tainting) переменных. Переменная может быть либо чистой, либо грязной. Данные поступившие извне программы считаются грязными до тех пор, пока они не будут очищены. Грязные переменные не могут быть использованы для передачи значений, которые будут использоваться за пределами программы (вызов команд оболочки).

В данном режиме аргументы командной строки, переменные окружения, результаты некоторых системных вызовов (readdir(), readlink(), readdir(), ...) и данные полученные из файлов считаются подозрительными, и поэтому, грязными.

Чтобы очистить переменную вы должны обработать ее регулярным выражением. Очевидно, что использование .* не даст результата. Цель такого подхода - заставить вас заботиться о предоставленных аргументах. Всегда использовать регулярные выражения для этого один из вариантов.

Тем не менее этот режим не обезопасит вас от всех проблем: загрязненность аргументов, переданых system() или exec() через переменную-список, не проверяется. Поэтому вы должны быть очень осторожны, если один из ваших скриптов использует эти функции. Инструкция exec "sh", '-c', $arg; считается безопасной вне зависимости от того грязная или нет переменная $arg :(

Также рекомендуется добавлять "use strict;" в начало своей программы. Это заставит вас объявлять переменные; некоторые люди находят это надоедливым, однако это обязательно, если вы используете mod-perl.

Таким образом CGI скрипт на Perl должен начинаться с:

#!/usr/bin/perl -wT
use strict;
use CGI;
или на Perl 5.6.0 :
#!/usr/bin/perl -T
use warnings;
use strict;
use CGI;

[ Назад ] [ Содержание ] [ Вперед ]



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru