Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

preg_replace() und der Modifikators 'e'

guten abend,

mich interessiert, ob es denn (vor allem sicherheitsmäßig) irgendeinen unterschied zwischen eval und dem Modifikator 'e' von preg_replace() gibt? ich würde jetzt mal auf nein tippen, da ja beide anscheinend schlichtweg beliebigen code ausführen, aber da man immer nur von eval is evil hört und nie was von 'e', wollte ich das einfach nochmal nachfragen ;)

danke :-)

Hier gehts zum Orginal Eintrag "preg_replace() und der Modifikators 'e'" im Forum

Antworten

keine php-funktion ist an sich böse, auch eval nicht. die frage ist nur, woher die zeichenkette kommt, die interpretiert werden soll. fast immer möchten einige experten eval verwenden, um datenbankeinträge oder formulareingaben als php-code zu interpretieren. das ist an sich ein grundsätzlich falsches konzept und eine sicherheitslücke. das betrifft eval ebenso wie den -e modifier für preg_replace. mir ist noch kein fall untergekommen, in dem es notwendig gewesen wäre, einen vorliegenden string als php-code zu interpretieren. denn wenn dieser php-code wirklich php-code ist, dann gehört er in eine php-datei und mit include o.ä. eingebunden.


2.

Es ist immer gefährlich wenn "User Code" zur Anwendung kommt...
Vom Browser kommende Variablen solten NICHT oder nur nach
harter Prüfung in eval() , /e oder create_function Verwendung finden.

[doc]create_function[/doc]

Auf http://de3.php.net/manual/de/function.stream-wrapper-register.php
findet sich ein Beispiel, wie man include() auf Variableninhalte, ohne eval(),
anwenden kann, ist aber keinen Deut sicherer..


Hier gehts zum Orginal Eintrag "preg_replace() und der Modifikators 'e'" im Forum
 
phpforum.de | Impressum