PHP-Befehle entfernen

Hallo Ihr!

Wie kann ich aus einem String mittels PHP alle darin enthaltenen PHP-Befehle entfernt werden? (Strip_Tags entfernt auch alle HTML-Tags, was nicht gewünscht ist) Und alle SQL-Befehle?

LG

Florian

Fällt mir so konkret keine ein, aber wofür möchtest du das denn habe?

Ich befürchte gerade du möchtest daraus dann eventuell einen File generieren, der durch den Interpreter läuft. Davon würde ich absehen, und stattdessen eine völlig andere Lösung versuchen. Sonst hast du ganz schnell nicht zu ermessende Sicherheitslücken, auch wenn du alle PHP-Befehle entfernst.

Hi!

Fällt mir so konkret keine ein, aber wofür möchtest du das
denn habe?

OK!

Vereinfacht gesagt, will ich ein Skript bauen, mit dem der Nutzer Content hochladen kann, der auch HTML enthält. (Wie zB bei einem HTML-fähigen Gästebuch)

Ich befürchte gerade du möchtest daraus dann eventuell einen
File generieren, der durch den Interpreter läuft.

'tschuldigung, aber HÄ?

Sonst hast du ganz schnell nicht zu ermessende
Sicherheitslücken, auch wenn du alle PHP-Befehle entfernst.

Stehe gerade auf dem Schlauch: Erzähl!

LG

Florian

Hi!

Irgendwie stehe ich auch dem Schlauch (was für ein Gedränge hier!) -
wie gelangt denn der PHP-Code in den Content?

Oder geht es vielleicht andersrum darum, bestimmte Zeichen zu escapen, d.h., sie als Text darzustellen statt sie als Code zu interpretieren?

Irritierten Gruß, Eckse

Hi!

wie gelangt denn der PHP-Code in den Content?

Theoretisch über Usereingaben, oder GET bzw. POST Variablen, die ein nicht wohlmeinender „Hacker“ zweckentfremden möchte.

Oder geht es vielleicht andersrum darum, bestimmte Zeichen zu
escapen, d.h., sie als Text darzustellen statt sie als Code zu
interpretieren?

Nein!

Es geht darum PHP (und gerne auch SQL) Befehle aus einem String zu entfernen und HTML-Befehle darin zu belassen! Thats it!

Grüßle

Florian

Hi, Florian!

Aber warum sollte denn ein User in das Eingabefeld eines Gästebuch PHP-Code eintragen? Es sei denn, er will ihn als Text dargestellt haben, wie beispielsweise hier im Forum. An welcher Stelle also wird aus dem ursprünglichen String Code?

Entschuldige, daß ich (wir) so auf dem Thema herumreiten, aber mir fällt (außer vielleicht, per RegEx alles zwischen ‚‘ und ‚?>‘ herauszufiltern, damit verlierst Du aber auch sämtliche Textausgaben) keine Möglichkeit ein, PHP-Code aus einem String zu entfernen und ich versuche herauszufinden, ob man mit der Problemlöung möglicherweise früher ansetzen kann.

Gruß, Caro

PHP brauchst du nicht zu entfernen, solange du den Text, der vom Browser gesendet wird nicht parsen lassen möchtest.
Ansonsten würde ich vorschlagen, beim eintragen des Textes in die Datenbank mit addslashes($text) die meisten Risiken auszuschließen. Beim laden kann ruhig alles wieder rein, da die enthaltenen PHP Befehle nichts ausmachen (solange nicht geparst wird) und SQL auch nichts mehr anrichten kann im Browser.
Ich finde es aber generell unklug irgendwelche User einfach so Html beisteuern zu lassen, da durch JavaScript beim Besucher der Seite dann z.B. Cookies abgerufen werden können.
Das könntest du mit einer Regex abfangen, die genau diese Javascriptpassagen durch htmlspecialchars() harrausfiltert.

mfg, Andre