我是Mojolicious的新手,正在尝试使用这个框架构建一个小型的new服务,我编写了以下代码来远程呈现一些文件
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我拿到文件了。
mojolicious上有没有防止这种目录遍历的选项?
也就是说,在上面的情况下,我只想
http:/mydomain:300/result如果有人输入此url,则为页面提供服务:
http://mydomain:3000/result/./../result该页面不应提供服务。这样做是可能的吗?
发布于 2013-11-19 04:22:30
/$result^/是一个正则表达式,如果您没有定义标量变量$result (看起来您没有这个变量),它将解析为/^/,它不仅与http://mydomain:3000/result/./../result匹配,还与http://mydomain:3000/john/jacob/jingleheimer/schmidt匹配。
use strict和use warnings,甚至在很小的网络服务上。
https://stackoverflow.com/questions/20056814
复制相似问题