Forum Doku Wiki Blog

Forumsarchiv 2005, September
Bedingung aus Variablen zusammenbasteln?

archivierte Beiträge lesen

  1. (PHP) Bedingung aus Variablen zusammenbasteln? von Christian, 02. 09. 2005, 21:20

Bedingung aus Variablen zusammenbasteln?

Der folgende Beitrag wurde am 02. 09. 2005, 21:20 Uhr von Christian veröffentlicht.

'n Abend!

(Wie) ist es möglich, eine if-Bedingung variabel zu belassen?

Also ich hab mir sowas gedacht:

$grenze = "< 7";

und dann in einer funktion:

function beispiel ($grenze, $etc = "belanglos") {
    if ($zahl .$grenze) {
        $whatever = $etc;
    }
}

So geht's aber nicht.

Gruß
Christian

Bedingung aus Variablen zusammenbasteln?

Der folgende Beitrag wurde am 02. 09. 2005, 21:33 Uhr von wahsaga veröffentlicht.

hi,

> (Wie) ist es möglich, eine if-Bedingung variabel zu belassen?
>
> Also ich hab mir sowas gedacht:
> $grenze = "< 7";
>     if ($zahl .$grenze) {

das ginge höchstens per eval() - was aber bekanntlich evil ist.


besser wäre es, wenn du dir für solche einen eigenen kleinen parser schreibst, der den "operator" extrahiert, und davon abhängig einen größer/kleiner/wasauchimmer-vergleich durchführt.

gruß,
wahsaga


--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }

Bedingung aus Variablen zusammenbasteln?

Der folgende Beitrag wurde am 02. 09. 2005, 22:17 Uhr von Christian veröffentlicht.

hi wahsaga,

> besser wäre es, wenn du dir für solche einen eigenen kleinen parser schreibst, der den "operator" extrahiert, und davon abhängig einen größer/kleiner/wasauchimmer-vergleich durchführt.

Ja, aber der Aufwand wäre größer, weil $grenze auch sowas wie "< 7 || $zahl > 14 && != 28" sein können sollen darf ;)

Ich schau mir mal an, was eval() genau ist.

Gruß
Christian

Bedingung aus Variablen zusammenbasteln?

Der folgende Beitrag wurde am 02. 09. 2005, 22:35 Uhr von Christian veröffentlicht.

Korrektur:
Nein, so soll $grenze natürlich nicht sein dürfen. ;)

Ist eval auch böse, wenn ich die Variablen sicher fehlerfrei (also nur selber eingegeben und auf Funktion geprüft) sind?

Grüße
Christian

Bedingung aus Variablen zusammenbasteln?

Der folgende Beitrag wurde am 02. 09. 2005, 22:54 Uhr von Alexander Brock veröffentlicht.

Hallo Freunde des gehobenen Forumsgenusses,

> Ist eval auch böse, wenn ich die Variablen sicher fehlerfrei (also nur selber eingegeben und auf Funktion geprüft) sind?

Wenn sie das wirklich sind: Nein.

Gruß
Alexander Brock
--
SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:? ss:| de:> js:( ch:| sh:( mo:} zu:}

http://againsttcpa.com

Bedingung aus Variablen zusammenbasteln?

Der folgende Beitrag wurde am 02. 09. 2005, 23:08 Uhr von dedlfix veröffentlicht.

echo $begrüßung;

> Ist eval auch böse, wenn ich die Variablen sicher fehlerfrei (also nur selber eingegeben und auf Funktion geprüft) sind?

eval() ist genauso "böse" wie jedes andere Werkzeug "böse" sein kann. Unsachgemäßer Gebrauch, absichtlich oder versehentlich, zugelassen oder nur nicht richtig abgesichert, kann zu Schäden führen.


echo "$verabschiedung $name";

Bedingung aus Variablen zusammenbasteln?

Der folgende Beitrag wurde am 02. 09. 2005, 23:30 Uhr von Christian veröffentlicht.

hi dedlfix,

> eval() ist genauso "böse" wie jedes andere Werkzeug "böse" sein kann. Unsachgemäßer Gebrauch, absichtlich oder versehentlich, zugelassen oder nur nicht richtig abgesichert, kann zu Schäden führen.

Schäden?
Ich kann mir nicht vorstellen, dass ein "Schaden" entstehen kann, weil eval() bei mir überhaupt nicht mit einer Datenbank oder sowas in verbindung steht...
eine Fehlermeldung könnte auftreten und das Skript abbrechen, aber sonst?

cya
Christian

Bedingung aus Variablen zusammenbasteln?

Der folgende Beitrag wurde am 03. 09. 2005, 00:03 Uhr von dedlfix veröffentlicht.

echo $begrüßung;

> Schäden?
> Ich kann mir nicht vorstellen, dass ein "Schaden" entstehen kann, weil eval() bei mir überhaupt nicht mit einer Datenbank oder sowas in verbindung steht...

Das eval steht erstmal mit nichts in Verbindung. Es versucht einfach nur den übergebenen String als PHP-Code zu interpretieren und auszuführen.

> eine Fehlermeldung könnte auftreten und das Skript abbrechen, aber sonst?

Wenn es also jemandem gelingt mit deinem eval beliebigen gültigen PHP-Code zur Ausführung zu bringen, dann kann derjenige alles machen, was du auch mit einem eigenen PHP-Script anstellen könntest: Lesen deiner und ggf. fremder Dateien, Mails von deinem Server aus versenden, Datenbankzugriff, wenn er die Zugangsdaten dazu findet, etc. pp.


echo "$verabschiedung $name";

Bedingung aus Variablen zusammenbasteln?

Der folgende Beitrag wurde am 03. 09. 2005, 01:19 Uhr von Christian veröffentlicht.

Hallo dedlfix

> Wenn es also jemandem gelingt mit deinem eval beliebigen gültigen PHP-Code zur Ausführung zu bringen, dann kann derjenige alles machen, was du auch mit einem eigenen PHP-Script anstellen könntest: Lesen deiner und ggf. fremder Dateien, Mails von deinem Server aus versenden, Datenbankzugriff, wenn er die Zugangsdaten dazu findet, etc. pp.

Aaaachso! Jetzt begreif ich! Danke für den Klartext!
Na das wäre natürlich richtig evil! xD

Das kann aber bei meiner Verwendung nur passieren, wenn derjenige eh meine PHP-Dateien ändern kann.

Aber über sowas muss man sich natürlich bewusst sein, wenn man's verwendet!

Gute Nacht!
Christian

Bedingung aus Variablen zusammenbasteln?

Der folgende Beitrag wurde am 03. 09. 2005, 10:05 Uhr von fastix® veröffentlicht.

Moin!

> eine Fehlermeldung könnte auftreten und das Skript abbrechen, aber sonst?
Es könnte jemand nach eigenem Belieben:

- Dateien lesen oder schreiben
- Code ausführen

Beispiel?

 eval bolTest=(`rm -rf *`==0)

Löscht zuverlässig den Verzeichnisinhalt, wenn der Benutzer mit dessen Rechten der Webserver gerade läuft, das darf.



MFFG (Mit freundlich- friedfertigem Grinsen)

fastix®

--
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development

Bedingung aus Variablen zusammenbasteln?

Der folgende Beitrag wurde am 02. 09. 2005, 21:33 Uhr von dedlfix veröffentlicht.

echo $begrüßung;

> (Wie) ist es möglich, eine if-Bedingung variabel zu belassen?

Wenn du nicht einen eigenen Parser schreiben willst, könntest du dir eval() ansehen. (Beachte, dass ungeprüfte Usereingaben durch eval() zu schicken Unheil anrichten kann.)


echo "$verabschiedung $name";

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4