9

シンプルな Web アプリケーションを構築する必要があります。Plack を使用するPoet ( Mason2 ) で行うことにしました。

アプリケーションは認証されたユーザーのみが使用できるようにする必要があるため、ログイン/パスワード機能を構築する必要があります。

チェックなどのセットアップを可能にする Basic ユーザー認証を使用できるPlack モジュールPlack::Middleware::Auth::Basic.htpasswdが既にあります。しかし、基本認証はあまり安全ではありません。誰でもパケットキャプチャなどでログインパスワードを取得できます。

考えられる解決策は次の 2 つです。

  • HTTPS(443) 経由で app.psgi を実行 - リンクレベルの暗号化
  • または、httpsなしで安全な認証を可能にするより良い認証方法はありますか?

質問:

  • HTTPS について - HTTPS 経由で実行する方法がわかりませんapp.psgi。アプリケーションを多少変更する必要がありますか? plackuphttpsを介して実行する方法を示すリンクはありますか?
  • または 2 つ目:標準の暗号化されていないポートを介して安全な認証を構築できる方法 (ミドルウェア/または perl モジュール) はあり ますか?(80)

では、Plack アプリケーションで安全な認証を実現する比較的簡単な方法は何でしょうか?

PS: 残りの通信は気にしません。パスワードの取得を許可しない安全な認証のみが必要です。

PPS: https は、apache (および自己署名) 証明書を使用すると簡単です。しかし、plackup(およびまたは他のPlackベースのサーバー)でそれを行う方法がわかりません

4

3 に答える 3

12

別のより簡単なオプションは、plackup、Starman、および Thrall に組み込まれているものを使用することです。

plackup --enable-ssl --ssl-key-file=... --ssl-cert-file=...

(また)

starman --enable-ssl --ssl-key=... --ssl-cert=...

(また)

thrall --enable-ssl --ssl-key-file=... --ssl-cert-file=...
于 2014-07-17T16:10:19.497 に答える
3

Plack+Apache/mod_perl を使用すると、Apache の設定は次のようになります。

<Location /path/myapp>
  SetHandler perl-script
  PerlResponseHandler Plack::Handler::Apache2
  PerlSetVar psgi_app /path/to/my.psgi
</Location>
于 2013-07-09T11:50:51.517 に答える
3

ユーザーを安全に認証する方法を知っているApacheなどのWebサーバーの背後でアプリケーションを実行できます。

これを行うには、次の 2 つのオプションがあります。

  1. FastCGI を使用する
  2. アプリへのプロキシ リクエスト。

FastCGI ルートに進むには、次のplackupように使用します。

plackup -s FCGI  myapp.psgi

Apache の設定では、次のようなものを使用します。

LoadModule fastcgi_module libexec/mod_fastcgi.so
<IfModule mod_fastcgi.c>
    FastCgiExternalServer /tmp/myapp.fcgi -host localhost:5000
    Alias /myapp/    /tmp/myapp.fcgi/
</IfModule>

または、アプリに対して Apache プロキシ リクエストを行うこともできます。

ProxyPass /myapp    http://localhost:5000/

は実稼働システムには推奨されないため、オプションをプロキシ ソリューションに制限する をplackup調べる必要があります。Starman

于 2013-07-08T18:59:30.257 に答える