Daniel: Echo-Ausgabe unterbinden

Hallo zusammen

Ich habe ein selbsgebasteltes CMS welches dem User erlaubt, eigene kleine Scripte zu schreiben. Beim Aufruf einer Seite wird dieses Script dann ausgeführt und das Resultat im entsprechenden Feld angezeigt. Diese Servlets werden mit "include()" integriert.

Problem: Wenn der User nun z.B. echo("hallo welt") in seinem Script verwendet, so wird dieser Inhalt natürlich sofort ausgegeben und irgendwo auf die Seite geschrieben.  Dies möchte ich irgendwie unterbinden. Gibt es da eine Möglichkeit das Servlet im Hintergrund zu parsen oder geparsten Code irgendwie in eine Variable zu schreiben?

  1. Hi,

    Problem: Wenn der User nun z.B. echo("hallo welt") in seinem Script verwendet, so wird dieser Inhalt natürlich sofort ausgegeben und irgendwo auf die Seite geschrieben.  Dies möchte ich irgendwie unterbinden.

    ganz ernsthaft: Wenn Du es dem User erlaubst, beliebigen Code auf Deinem System auszuführen, hast Du ganz andere Probleme. Sowas würde selbst Microsoft als "critical" klassifizieren.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Wenn ein Benutzer einmal mein CMS verwenden soll, dann läuft es auf seiner Maschine und dafür ist er ja wohl selbst verantwortlich. Vorläufig benutze ich dieses für mich und nur ich als CMS-Administrator habe die Möglichkeit ein Script einzufügen (Wenn ich z.B. in einem Feld das aktuelle Datum anzeigen möchte!)

      1. Hi,

        Wenn ein Benutzer einmal mein CMS verwenden soll, dann läuft es auf seiner Maschine und dafür ist er ja wohl selbst verantwortlich.

        die Lösung Deines Problems heißt "Dokumentation". _Beschreibe_, welchen Effekt was hat und warum es nicht getan werden soll.

        Cheatah

        --
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. die Lösung Deines Problems heißt "Dokumentation". _Beschreibe_, welchen Effekt was hat und warum es nicht getan werden soll.

          Da bin ich ganz deiner Meinung. Trotzdem sollten Anwendungen immer möglichst auch "ohne Manual" zu bedienen sein. So gesehen wird der Benutzer einfach mal ein Script hineinschreiben und wetten dieses enthält einen echo-Befehl?! Wer kommt schon einfach so darauf, alle Ausgaben in einer Variable zu speichern anstatt am Ende des Scripts auszugeben...?!

          1. Hi,

            Trotzdem sollten Anwendungen immer möglichst auch "ohne Manual" zu bedienen sein.

            ja. Dennoch: Du hast eine äußerst begrenzte Userzahl vor Dir; dieser darf ein Schulungsbedarf eingeräumt werden.

            So gesehen wird der Benutzer einfach mal ein Script hineinschreiben und wetten dieses enthält einen echo-Befehl?!

            Ja, und den Effekt wird er dann sehen.

            Wer kommt schon einfach so darauf, alle Ausgaben in einer Variable zu speichern anstatt am Ende des Scripts auszugeben...?!

            Jeder, der die Dokumentation gelesen hat, in der Du genau dies beschrieben (und vielleicht sogar eine günstigere, von Dir entwickelte Schnittstelle genannt) hast. Der Tipp von Henryk ist gut; ich würde mir aber trotzdem eine Alternative überlegen. "echo" darf eine Debug-Ausgaben-Funktion sein.

            Cheatah

            --
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
            1. Jeder, der die Dokumentation gelesen hat, in der Du genau dies beschrieben (und vielleicht sogar eine günstigere, von Dir entwickelte Schnittstelle genannt) hast. Der Tipp von Henryk ist gut; ich würde mir aber trotzdem eine Alternative überlegen. "echo" darf eine Debug-Ausgaben-Funktion sein.

              Was meinst du mit "darf" eine "Debug-Ausgabe-Funktion" sein?

    2. Hi,

      ganz ernsthaft: Wenn Du es dem User erlaubst, beliebigen Code auf Deinem System auszuführen, hast Du ganz andere Probleme.

      Wieso? Wenn nur der Admin der Zugang zum Scripten besitzt, ist das doch ein großer Vorteil gegen über anderen CMS.

      Man könnte so Templats im und mit dem CMS entwickeln.
      Alle die keinen Adnmin Zugang besitzen könnten somit nur Text einsellen.

      Gruß Derdef

      1. Wieso? Wenn nur der Admin der Zugang zum Scripten besitzt, ist das doch ein großer Vorteil gegen über anderen CMS.

        Genau das ist die Überlegung: Der User soll möglichst flexibel sein und sein CMS anpassen können. Wünscht er sich zum Beispiel eine Anzeige der Seitenaufrufe, so kann er ohne Probleme sein Script integrieren.

        Gruss Daniel

  2. Moin,

    Gibt es da eine Möglichkeit das Servlet im Hintergrund zu parsen oder geparsten Code irgendwie in eine Variable zu schreiben?

    Du suchst die output buffering-Funktion von PHP. Sieh' in der Dokumentation unter ob_start() und Freunden nach.

    --
    Henryk Plötz
    Grüße aus Berlin
    ~~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~~
    ~~ Help Microsoft fight software piracy: Give Linux to a friend today! ~~
    1. Du suchst die output buffering-Funktion von PHP. Sieh' in der Dokumentation unter ob_start() und Freunden nach.

      GENAU DAS HABE ICH GESUCHT! DANKE!