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
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; }
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
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
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
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";
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
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";
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
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
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