Mojolicious и обратный путь в каталогах
Я новичок в Mojolicious и пытаюсь создать крошечный веб-сервис, используя эту платформу. Я написал следующий код, который визуализирует некоторые файлы удаленно
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
страница не должна быть обслужена. Возможно ли это сделать?
1 ответ
/$result^/
является регулярным выражением, и если вы не определили скалярную переменную $result
(которого у вас, похоже, нет), он разрешает /^/
, который соответствует не только http://mydomain:3000/result/./../result
но такжеhttp://mydomain:3000/john/jacob/jingleheimer/schmidt
,
use strict
а также use warnings
даже на крошечных веб-сервисах.