1

我正在开发一个 Web 应用程序,我想知道是否有一种方法或某种模块可以在显示给客户端之前拦截或处理任何 HTTP 请求。我无法修改 httpd.conf 文件,所以它不是一个选项。我想通过拒绝访问或重定向到其他页面或修改发送给客户端的响应和其他一些东西来为我的 Web 应用程序添加一些安全性。我也听说过请求调度,也许它可以帮助我。有人知道如何实现这一目标吗?

4

2 回答 2

3

也许您可以使用Plack::Handler::Apache2来启用 PSGI 支持。从那里,您可以使用 PSGI 中间件模块来修改请求和响应。

如果不知道如何设置 Perl 以在 mod_perl 环境中执行,就很难得到更具体的信息。

于 2012-11-26T21:40:28.577 回答
2

您可能想查看HTTP::Proxy,这是一个用于编写 Web 代理的perl模块......一个例子:

 # alternate initialisation
  my $proxy = HTTP::Proxy->new;
  $proxy->port( 3128 ); # the classical accessors are here!

  # this is a MainLoop-like method
  $proxy->start;
  my $d = HTTP::Daemon->new || die;
  while (my $c = $d->accept) {
      while (my $r = $c->get_request) {
          if ($r->method eq 'GET' and $r->uri->path eq "/xyzzy") {
              # remember, this is *not* recommended practice :-)
              $c->send_file_response("/home/hd1/.zshrc");
          }
          else {
              $c->send_error(RC_FORBIDDEN)
          }
      }
      $c->close;
      undef($c);
  }
于 2012-11-26T20:11:38.613 回答