Hallo allerseits,
bei der Firewall werden ja einige Regex-Ausdrücke mitgeliefert, z.B. beim Virenscanner des HTTP-Proxies: z.B. ^[^:]*://database\.clamav\.net/.
Ich wollte nun noch einige Ausdrücke hinzufügen, die ich mir z.B. mit Hilfe von regex101.com erstellt habe. Dabei fiel mir bei Überprüfen eben des obigen Ausdrucks auf, dass dieser lt. regex101.com nicht korrekt sein soll. Er findet z.B. nicht http://database.clamav.net/. Dazu müsste er wohl so lauten [^:]*:\/\/database\.clamav\.net\/
Nun die Frage: Wird auf den UTM ein spezieller Regex-Parser verwendet oder haben die mitgelieferten Regex-Ausdrücke Schreibfehler?
Regex auf der UTM11 korrekt?
Moderator: Securepoint
Der Forward-Slash ("/") muss nur dann muss nur dann mit einem Backslash escaped werden, wenn es der sogenannte "Delimiter" des Regex ist. Der Delimiter bezeichnet das erste und letzte Zeichen eines Regex. In PHP z.B. kann der Delimiter frei gewählt werden. Der Regex von oben sieht dann jeweils unterschiedlich aus:
Ein schlau gewählter Delimiter vereinfacht also einige Regexes. Die Webseite "regex101.com" verwendet nun einen Slash als Delimiter, weswegen die Slashes im Regex escaped werden müssen, während der HTTP-Proxy den Delimiter nur intern setzt und somit ein explizites escapen der Slashes im Regex nicht notwendig ist.
Code: Alles auswählen
//wenn der Delimiter ein Slash (/) ist
$result = preg_match("/[^:]*:\/\/database\.clamav\.net\//", $myURL);
//wenn der Delimiter eine Tilde (~) ist
$result = preg_match("~[^:]*://database\.clamav\.net/~", $myURL);
-
- Beiträge: 4
- Registriert: Mi 25.11.2015, 15:45
Vielen Dank, das sollte man natürlich wissen. Dann muss man sich die Regex-Ausdrücke also immer mit Regexpal basteln, damit die UTM damit korrekt umgehen kann? Könnte man das irgendwo nachlesen?
Dann stellt sich mir auch die Frage, ob die UTM mit Regex-Ausdrücken umgehen kann, die z.B. von http://www.regexr.com/ erstellt wurden? Diese Seite wurde ja in der ACE-Schulung empfohlen.