Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Reguläre Ausdrücke in phpBB Update (https://www.delphipraxis.net/67620-regulaere-ausdruecke-phpbb-update.html)

faux 17. Apr 2006 18:40


Reguläre Ausdrücke in phpBB Update
 
Hallo!

Ich update gerade mein phpBB und bin auf folgenden Ersetzungsbefehl gestoßen:

Zitat:

FIND - Line 197
Code:
// [img]image_url_here[/img] code..
// This one gets first-passed..
$patterns[] = "#\[img:$uid\](.*?)\[/img:$uid\]#si";
REPLACE WITH
Code:
// [img]image_url_here[/img] code..
// This one gets first-passed..
$patterns[] = "#\[img:$uid\]([^?].*?)\[/img:$uid\]#i";

Also dass der Modus von si auf i geändert wurde verstehe ich noch. Das heiß, dass . nun keine \n mehr erkennt.
Aber was macht die Änderung von (.*?) auf ([^?].*?) für einen Sinn? Der Zirkumflex steht doch für den Zeilen bzw Stringbeginn und ? für einmal oder keinmal, also bleibt es sich doch egal, ob man das weglässt oder nicht. Oder sehe ich das falsch?!
Ich frage deswegen, weil ich auch einige Tags selbstständig hinzugefügt habe und diese ev. eine Sicherheitslücke aufweisen.

Danke schon mal.

Grüße
Faux

alcaeus 17. Apr 2006 18:59

Re: Reguläre Ausdrücke in phpBB Update
 
Code:
[^?]
Dies beschreibt eine Zeichengruppe, welche negiert ist. Das heisst, du willst alle Zeichen, ausser dem ? haben. Dies verhindert, dass php-Dateien mit Parametern in img-Tags gewickelt werden koennen (jedenfalls ohne htaccess usw.)
php-Dateien in Image-Tags koennen (wenn sie nicht kontrolliert werden) ein grosses Sicherheitsrisiko sein. Deshalb wurde das entfernt.
Die RegExp bedeutet im Klartext, dass mindestens ein Zeichen, welches nicht ein ? ist, vorhanden sein muss ;)

Greetz
alcaeus

PS: Aber mach dir keine Sorgen, die RegExp aendert sich im Verlaufe deiner Update-Orgie noch :mrgreen:

faux 17. Apr 2006 19:07

Re: Reguläre Ausdrücke in phpBB Update
 
:wall: ^ in Mengen heißt nicht Stringanfang sondern not.

Danke, alcaeus, jetzt wirds mir klar. ;)

Mir ist auch noch aufgefallen, dass das auch beim [url]-Tag geändert wurde. Heißt das, dass man hier auch keine PHP-Files mit Parametern einbinden kann?

Zitat:

Zitat von alcaeus
PS: Aber mach dir keine Sorgen, die RegExp aendert sich im Verlaufe deiner Update-Orgie noch :mrgreen:

Jap, bereits im nächsten Update wird der Modus wieder auf si gesetzt. :mrgreen:

Grüße
Faux


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:53 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz