普拉克污染模式

发布于 2024-11-10 01:07:36 字数 235 浏览 5 评论 0原文

是否建议使用 Perl 的污点模式开发 Plack 应用程序(中间件)?

如果是,如何在污染模式下启动 plackup 和/或 Starman?在简单的 CGI 脚本中,可以使用 shebang 行轻松完成。

perl -T /path/to/{plackup|starman} 能完成这项工作吗?或者这里有什么推荐的方法吗?或者说不推荐?

关于 Plack+Taint 模式组合的任何想法、指示和文章吗?

Is it recommended developing Plack applications (middlewares) with perl's taint mode?

If yes, how to start plackup and/or Starman in tainted mode? In the simple CGI script that was easily done with the shebang line.

Will perl -T /path/to/{plackup|starman} do the job? Or here is any recommended way? Or it is not recommended?

Any ideas, pointers, articles about the combination Plack+Taint mode?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

最单纯的乌龟 2024-11-17 01:07:36

我们通常不建议人们在污点模式下开发 Plack 应用程序,只是因为我个人不相信污点模式的用处。

Plack 的核心实用程序(例如 plackup 和 Plack::Utli)尤其不能很好地适应污点模式,因为它需要将给定的 .psgi 文件编译为源代码。如果您确实想在污点模式下开发应用程序,则必须绕过 plackup 并使用 Plack::Handler 或 Plack::Loader。

We usually don't recommend people to develop Plack applications under the taint mode, simply because I personally don't believe in the usefulness of the taint mode.

Plack's core utilities such as plackup and Plack::Utli particularly don't play well with the taint mode because it needs to compile the given .psgi file as a source code. If you really want to develop your application under the taint mode, you have to bypass the plackup and use Plack::Handler or Plack::Loader.

執念 2024-11-17 01:07:36

解决 plackup util 的问题很简单,
我可以给你一个 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->run($app);

然后用 taintmode perl -T 启动你的startup.pl脚本

it is simple to workaround the plackup util,
i can give you a example for fastcgi but it should be posible to do the same with starman
forgett about the the .psgi file and use a plain startup script:

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

);
#or use Plack::Loader to load a server

#run your application
$server->run($app);

then start your startup.pl script with taintmode perl -T

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文