The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Вызов system() в Perl"
Отправлено Skif, 31-Дек-06 04:10 
>Большушее вам Спасибо! Скиф, но у меня почему-то все оставлось по прежнему!
>
>темболее я делал такую проверку уже! не мне всеравно выдает
>
>Insecure dependency in system while running with -T switch at ./pptp-command253
>line 843.

Цитирую:
---------------
Попытка сделать что-то, непонравившееся механизму меченных данных. Этот механизм включается, когда выполняется setuid или setgid, либо задан -T для явного его включения. Он помечает все данные явно или косвенно полученные от пользователя, которые считаются недостояными доверия. Если такие данные используются в "опасной" операции, то генерируется сообщение об этой ошибке.
---------------
"Программирование на Perl", Лари Уолл, стр. 1011
system как раз и неявляется секурной.
Отсюда, с какими ключами и опциями пускается скрипт (#!/usr/bin/perl _чего_тут_написано_ + use _чего_пользуем_)
Цитирую:
---------------
-T  Включает проверки "меченых" данных("taint" checks), которые становиться возможным использовать. Обычно эти проверки  осуществляются только при установленых setuid или setgid. Неплохо  явно включить их для программ, выполняемых от другого имени, таких как CGI.
Обратите внимание, что по соображениям безопасности Perl должен увиденть этот параметр как можно раньшеl; обычно это значит, что он должен стоят в начале командной строки  или строки #!.
---------------
Там же, стр. 552
Ну с этим разобрались.

>
>Поэтому то я и спрашиваю в чем может быть дело!
>Спасбо еще раз!


Если строка 843 это и есть вызов system, то отсюда выход проверить $pid + явно указать расположение kill:
$pid =~ /$unsafe_re/o;
warn $pid;
system "kill -HUP $pid";
warn "kill -HUP $pid";

или

$pid =~ /$unsafe_re/o;
warn $pid;
system "/bin/kill -HUP $pid";
warn "/bin/kill -HUP $pid";

Ну и в заключение, а что мешает использовать встроенную функцию kill? Философия или религия?
root@fbsd2.home /usr/home/skif :perldoc -f kill
       kill SIGNAL, LIST
               Sends a signal to a list of processes.  Returns the number of
               processes successfully signaled (which is not necessarily the
               same as the number actually killed).

                   $cnt = kill 1, $child1, $child2;
                   kill 9, @goners;

               If SIGNAL is zero, no signal is sent to the process.  This is a
               useful way to check that a child process is alive and hasn't
               changed its UID.  See perlport for notes on the portability of
               this construct.

               Unlike in the shell, if SIGNAL is negative, it kills process
               groups instead of processes.  (On System V, a negative PROCESS
               number will also kill process groups, but that's not portable.)
               That means you usually want to use positive not negative sig-
               nals.  You may also use a signal name in quotes.

               See "Signals" in perlipc for more details.
root@fbsd2.home /usr/home/skif :kill -l
HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM URG STOP
TSTP CONT CHLD TTIN TTOU IO XCPU XFSZ VTALRM PROF WINCH INFO USR1 USR2

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру