Mojolicious和目录遍历

时间:2013-11-18 20:07:06

标签: perl security mojolicious mojolicious-lite

我是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;

但是当我尝试使用以下网址获取文件时似乎:

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

我收到了文件。

是否有任何关于mojolicious的选项来防止这样的目录遍历?

即在上述情况下我只想要

http:/mydomain:300/result

如果有人输入此网址,则为该页面提供服务:

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

不应该提供该页面。 这样做是否可行?

1 个答案:

答案 0 :(得分:0)

/$result^/是一个正则表达式,如果你还没有定义标量变量$result(它没有出现),它会解析为/^/,它不仅匹配 http://mydomain:3000/result/./../result但也 http://mydomain:3000/john/jacob/jingleheimer/schmidt

use strictuse warnings,即使在微小的网络服务上也是如此。