[Vienna-pm] Regex aus Datei lesen
Roland Giersig
rgiersig at cpan.org
Tue Oct 28 05:00:16 PDT 2008
Ich habs selber noch nicht verwendet, aber laut 'perldoc re' sollte
no re 'eval';
genügen.
HTH, Roland
Stefan Weiss wrote:
> Hi.
>
> Ich möchte eine Liste von Regular Expressions (nur Matching, keine
> Substitution) aus einer Datei lesen und eine nach der anderen auf einen
> Text anwenden. Die Regexen können nicht länger als eine Zeile sein, und
> müssen mit / und /[gsmix]* begrenzt sein.
>
> Dabei darf aber nicht unabsichtlich Code ausgeführt werden können, oder
> sonstwelche Nebeneffekte eintreten. Folgende Stellen sind zum Beispiel
> problematisch:
>
> (?{code})
> (??{code})
> ${code}
> @{code}
>
> Ich möchte eigentlich vermeiden, die Regexen selbst zu parsen (händisch
> oder durch Module wie YAPE::Regex). Komme ich mit so einer Überprüfung
> durch, oder gibt's da noch Schlupflöcher?
>
> $unsafe_regex = qr/
> \( \s* \?{1,2} \{ # matcht (?{code}) und (??{code})
> |
> [$@]\{ # matcht halt leider auch /foo\@{4}bar/
> /x;
>
> Das Skript wird händisch in der Commandline ausgeführt; um DoS durch zu
> komplexe Regexen mache ich mir deshalb weniger Sorgen.
>
>
> TIA,
> Stefan
>
>
More information about the Vienna-pm
mailing list