11

perl の taint モードで Plack アプリケーション (ミドルウェア) を開発することは推奨されますか?

はいの場合、汚染されたモードでplackupおよび/またはStarmanを開始する方法は? シバンラインで簡単にできたシンプルなCGIスクリプトで。

perl -T /path/to/{plackup|starman}仕事をしますか?または、ここに推奨される方法はありますか?それとも非推奨ですか?

Plack + Taint モードの組み合わせに関するアイデア、ポインタ、記事はありますか?

4

2 に答える 2

7

私は個人的に汚染モードの有用性を信じていないという理由だけで、汚染モードで Plack アプリケーションを開発することを通常はお勧めしません。

plackup や Plack::Utli などの Plack のコア ユーティリティは、特定の .psgi ファイルをソース コードとしてコンパイルする必要があるため、taint モードでは特にうまく機能しません。本当にテイント モードでアプリケーションを開発したい場合は、plackup をバイパスして、Plack::Handler または Plack::Loader を使用する必要があります。

于 2011-05-29T19:15:14.423 に答える
1

plackup utilを回避するのは簡単です。fastcgiの例を示すことができますが、.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-> run($ app);

次に、taintmodeperl-Tを使用してstartup.plスクリプトを開始します

于 2012-07-01T17:12:36.270 に答える