Thread STDOUT und ERROUT in Datei umleiten (22 answers)
Opened by Eng1958 at 2013-11-14 12:22

clms
 2013-11-15 11:19
#172109 #172109
User since
2010-08-29
373 Artikel
BenutzerIn
[default_avatar]
2013-11-15T08:10:04 Eng1958
Es lag doch nicht an dem Code der dort zu sehen war sondern mal wieder an einer Regulare Expression...
Da das ganze im Hintergrund läuft gibt Perl wieder tainted Code aus.
Quote
Insecure dependency in open while running setgid at rnetposts.pl line 83.

Das heißt mal wieder muss das ganze überprüft werden.
Habe diese hier genommen:
Code: (dl )
1
2
3
4
5
6
7
8
if($logfile =~ ^([a-zA-Z0-9\_/\s\-]+)$)
{
$logfile = $1;
}
else
{
die "Bad data in $logfile";
}

Wo hast Du in dem Code-Schnipsel denn eine Regex?

Ich bin jetzt zu faul das auszuprobieren, aber was macht Dein Code überhaupt? Gibt der keinen Syntax-Error aus?

Du willst ein Match mit der Regex machen. Dafür brauchst Du erstmal einen Match-Operator, damit der Parser das weiß. Das ist m. Das fehlt hier. Dann muss der Parser noch wissen, wo Deine Regex anfängt und endet. Dafür musst Du sie in "Klammern" oder "Anführungszeichen" setzen. Das ist das erste Zeichen nach dem Match-Operator. Das fehlt hier auch.

Code (perl): (dl )
if ($logfile =~ m:^([a-zA-Z0-9\_/\s\-]+)$:) { ...}

sollte funktionieren.

Es gibt einen Sonderfall:
Wenn Du / als Quote für die Regex nimmst, kannst Du das m für Match weglassen. Dann musst du aber alle "/" in Deiner Regex escapen:
Code (perl): (dl )
if ($logfile =~ /^([a-zA-Z0-9\_\/\s\-]+)$/) { ...}

View full thread STDOUT und ERROUT in Datei umleiten