More secure skin param check (#1346)

This commit is contained in:
Xavier Guimard 2017-12-20 22:52:52 +01:00
parent 35d7e7e2f5
commit 931188b15f

View File

@ -421,14 +421,20 @@ sub getSkin {
# Check skin GET/POST parameter # Check skin GET/POST parameter
my $skinParam = $req->param('skin'); my $skinParam = $req->param('skin');
if ( defined $skinParam and !$self->checkXSSAttack( 'skin', $skinParam ) ) { if ( defined $skinParam ) {
if ( -d $self->conf->{templateDir} . '/' . $skinParam ) { if ( $skinParam =~ /^[\w\-]$/ ) {
$skin = $skinParam; if ( -d $self->conf->{templateDir} . '/' . $skinParam ) {
$self->logger->debug("Skin $skin selected from GET/POST parameter"); $skin = $skinParam;
$self->logger->debug(
"Skin $skin selected from GET/POST parameter");
}
else {
$self->userLogger->error(
"User tries to access to unexistent skin dir $skinParam");
}
} }
else { else {
$self->userLogger->error( $self->userLogger->error("Strange skin parameter: $skinParam");
"User tries to access to unexistent skin dir $skinParam");
} }
} }