1

私は Mojolicious を初めて使用し、このフレームワークを使用して小さな Web サービスを構築しようとしています。いくつかのファイルをリモートでレンダリングする以下のコードを書きました。

use Mojolicious::Lite;
use strict;
use warnings;



app->static->paths->[0]='C:\results';
     get '/result' => sub {

       my $self = shift;
       my $headers = $self->res->headers;
      $headers->content_type('text/zip;charset=UTF-8');

       $self->render_static('result.zip');

    };

    app->start;

しかし、次のURLを使用してファイルを取得しようとすると、次のようになります:

http://mydomain:3000/result/./../result

ファイルを取得します。

そのようなディレクトリトラバーサルを防ぐためのモジョリシャスのオプションはありますか?

つまり、上記の場合、私は欲しいだけです

http:/mydomain:300/result

誰かがこの URL を入力した場合にページを提供する:

http://mydomain:3000/result/./../result

ページは提供されるべきではありません。これを行うことは可能ですか?

4

1 に答える 1

0

/$result^/は正規表現であり、スカラー変数を定義していない場合$result(定義していないように見えます)、 に解決され、 だけでなく にも /^/一致 します。http://mydomain:3000/result/./../resulthttp://mydomain:3000/john/jacob/jingleheimer/schmidt

use strictそしてuse warnings、小さなウェブサービスでも。

于 2013-11-18T20:22:29.520 に答える