Plack & Taint Mode - PullRequest
       28

Plack & Taint Mode

11 голосов
/ 29 мая 2011

Рекомендуется ли разрабатывать приложения Plack (middlewares) с режимом заражения perl?

Если да, как запустить plackup и / или Starman в режиме заражения?В простом CGI-сценарии, который был легко сделан с линией Шебанга.

Будет ли perl -T /path/to/{plackup|starman} делать работу?Или вот какой рекомендуемый способ?Или это не рекомендуется?

Есть идеи, указатели, статьи о комбинации режима Plack + Taint?

Ответы [ 2 ]

7 голосов
/ 29 мая 2011

Мы обычно не рекомендуем людям разрабатывать приложения Plack в режиме taint, просто потому что я лично не верю в полезность режима taint.

Основные утилиты Plack, такие как plackup и Plack:: Utli особенно плохо работает с режимом taint, потому что он должен скомпилировать данный файл .psgi как исходный код.Если вы действительно хотите разрабатывать свое приложение в режиме taint, вы должны обойти блокировку и использовать Plack :: Handler или Plack :: Loader.

1 голос
/ 01 июля 2012

это просто обойти утилиту установки, Я могу дать вам пример для fastcgi, но это должно быть возможно сделать то же самое со Starman забудьте о файле .psgi и используйте простой стартовый скрипт:

my $app = sub {
    my $env = shift;
    #...
}
#read the pid file, check for an old process, kill the old process...
#...

#choose a psgi Server impl.
#i prefere fcgi 
my $manager = new FCGI::ProcManager::MaxRequests({
'max_requests'=>100,
'pid_fname'=>$pid_file,
'n_processes'=> 3,
'pm_title'=> $name
});
my $server = Plack::Handler::FCGI->new(
'listen'=>[$socket],
'detach' => 1,
'manager' => $manager

); # или использовать Plack :: Loader для загрузки сервера

# запустите ваше приложение $ Server-> запустить ($ приложение);

затем запустите ваш скрипт startup.pl с помощью taintmode perl -T

...