LINUX.ORG.RU

проблема защиты в mod_perl


0

0

Похоже у этого распространенного модуля есть серьезные проблемы с безопасностью которая недавно обнаружилась.
Имеется часто запускаемый скрипт, например, ccard.cgi которая в общем активно работает и работает с кредитными картами клиентов.
Все переменные объявлены через my и используется 'use strict'.
Пишем другой скрипт, например, hack.cgi без 'use strict' и использующий такие же переменные, но без их инициализации, т.е. первая строка с такой переменой выглядит примерно так:
$out = my_procedure($credit_card);

И скрипт hack.cgi получает значение переменной из скрипт ccard.cgi!!! Таким образом я смог получить несколько номеров кредиток. Запуская hack.cgi с одного VirtualHost, а скрипт ccard.cgi запуская с другого. Пока пришлось все скрипты с кредитками переписать с использованием blowfish даже когда используются для внутренних целей.

Кто нибудь знает про эту проблему и как с ней можно бороться. perl, Apache & mod_perl последние точно версий не помню, но переустанавливали недавно.

★★★

Да действительно есть такая проблема, только c переменными определенными через use vars ... (mod_perl 1.23).
Могу посоветовать не определять все переменные таким образом, а использовать обьекты. Тогда доступ к переменным будет примерно таким $object->{CREDITCARD}. Также можно написать деструктор который чистит значения полей обьекта:
sub DESTROY{
my $self=shift;
$self->{CREDITCARD}='';
}

Имена переменных которые можно таким образом посмотреть, можно увидеть как http://localhost/perl-status -> LoadedModules -> "какойто модуль". Если конечно в конфиге апача разрешить /perl-status.

Alximik
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.