Phil (nochmal :): MySQL-Ausgabe interpretiert keine PHP-Befehle??

Wiederum hallo!
Noch was: Ich lese vieles bei mir aus einer MySQL-Datenbank aus. Das Problem ist, dass ich es manchmal benötige, IN den MySQL-Daten PHP-Befehle zu nutzen.
Sprich ich habe einen Text und setze nach der normalen Nomiklatur einen PHP-Befehl:
bjdskfbvblablabla <? echo $REMOTE_ADRR ?> jkdfkjdbg

und DAS funzt net. Warum?
Rein zufällig will ich auch die IP auslesen, wie die Variable oben es benennt...

  1. Hi,

    und DAS funzt net.

    nicht nur das - es funktioniert auch nicht!

    Warum?

    Weil das Resultat einer MySQL-Abfrage (z.B.) ein String ist, also eine Zeichenkette. Was da drin steht, sind Zeichen - nicht mehr.

    Du möchtest mit eval() übrigens extrem vorsichtig umgehen.

    Cheatah

    1. Du möchtest mit eval() übrigens extrem vorsichtig umgehen.

      Hä? Ich nutze das doch gar nicht

      1. Vergiss es :))

        Aber warum?

        1. Hi,

          Vergiss es :))

          Du meinst, Du hast meine Antwort "Noch nicht!" bereits vorhergesehen? :-)

          Aber warum?

          Weil damit eine (ungefährliche!) Zeichenkette als PHP-Code ausgeführt wird. Ich weiß nicht, wie streng definiert die Quelle der Daten ist (sprich: welche Personen sie liefern können); aber wenn irgendjemand einen Weg findet, selbst definierte Daten in Dein eval() zu lenken, und Du dies nicht erkennst und unterbindest bzw. einschränkst, dann wird _beliebiger_ PHP-Code ausgeführt. Und das kann zu allem führen - beispielsweise zum Versand Deiner Passwortdateien oder zum Löschen der Festplatte.

          Genau das passiert übrigens in dem in </?m=60065&t=10847> genannten Fall.

          Cheatah

          1. Sprich: Wenn ich alle Eingaben selber prüfe und erst dann online stelle (bzw. von anfang an selber schreibe) kann nix passieren?

            1. Hi,

              Sprich: Wenn ich alle Eingaben selber prüfe und erst dann online stelle (bzw. von anfang an selber schreibe) kann nix passieren?

              erstens das, und zweitens musst Du mit maximaler Sicherheit dafür sorgen, dass kein anderer Weg der Dateneingabe existiert. Und ich rede nicht von vorgesehenen Wegen, sondern von denen, die ein Hacker ganz gerne mal geht.

              "Kann nix passieren" ist übrigens grundsätzlich relativ :-)

              Cheatah