[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