ExeCRabLE: textarea vs. textarea

Hi,

ich nutze für mein mini CMS das Programm HTMLArea 3.0 RC1. Nun wird der Quelltext (alias content) aus der DB geladen und innerhalb einer textarea ausgegeben, damit man ihn bearbeiten und speichern kann.

Das Problem bei dem Vorgang ist, das ich keine Textareas innerhalb des contents benutzen kann, da dieser selbst in einer Textarea dargestellt wird. Ich glaube, das ich das Problem umgehen könnte, wenn ich ein anderes Element nutze als die Textarea.

Gibt es im HTML eine alternative zur Texteingabe bzw. Textausgabe ?!

Oder gibt es vieleicht ein ganz andere Lösung ?!

Danke schon einmal !

ciao
ExeCRabLE

  1. Hi,

    Das Problem bei dem Vorgang ist, das ich keine Textareas innerhalb des contents benutzen kann, da dieser selbst in einer Textarea dargestellt wird.

    ich verstehe nicht, wo da ein Problem sein sollte.

    Gibt es im HTML eine alternative zur Texteingabe bzw. Textausgabe ?!

    Ja, einzeilige <input>-Felder.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi,

      Das Problem bei dem Vorgang ist, das ich keine Textareas innerhalb des contents benutzen kann, da dieser selbst in einer Textarea dargestellt wird.

      ich verstehe nicht, wo da ein Problem sein sollte.

      Wenn der Quelltext z.B. wie folgt lautet :

      <php $s_c="<textarea>Hallo</texarea>"; ?>

      <textarea id="ta" name="ta" style="width:98%" rows="30">
      <?php echo "$s_c"; ?>
      </textarea>

      Letzendlich passiert nichts anderes, als das der zweite Textarea-Tag den ersten Textarea-Tag schliesst und somit die Darstellung der Textarea vorzeitig beendet. Diese Sinnlosigkeit der verschachtelten Textareas entsteht durch das Tools "HTMLArea". Das Tool macht für mich aber sinn, daher versuche ich eine Lösung zu finden.

      Gibt es im HTML eine alternative zur Texteingabe bzw. Textausgabe ?!

      Ja, einzeilige <input>-Felder.

      Scherzkeks :)

      Gibt es keine andere Möglichkeit, oder bin ich nur zu beschränkt das Problem zu beheben ?

      Cheatah

      ciao
      ExeCRabLE

      1. Hi,

        Robert diesmal.

        Das Problem bei dem Vorgang ist, das ich keine Textareas innerhalb des contents benutzen kann, da dieser selbst in einer Textarea dargestellt wird.

        ich verstehe nicht, wo da ein Problem sein sollte.

        Wenn der Quelltext z.B. wie folgt lautet :

        <php $s_c="<textarea>Hallo</texarea>"; ?>

        <textarea id="ta" name="ta" style="width:98%" rows="30">
        <?php echo "$s_c"; ?>
        </textarea>

        Sagen dir htmlspecialchars() bzw. htmlentities() was? Das könnten hübsche Lösungen des Problems sein. Damit bekommst du auch das XSS-Problem in den Griff, was ich beschrieben habe.

        [...] Diese Sinnlosigkeit der verschachtelten Textareas entsteht durch das Tools "HTMLArea". Das Tool macht für mich aber sinn, daher versuche ich eine Lösung zu finden.

        Hm, dann solltest du vielleicht den Autor dieses Programmes darauf hinweisen oder selbst dieses Tool hacken. Immerhin sehe ich da eine gravierende Sicherheitslücke.

        [...]

        Gibt es keine andere Möglichkeit, oder bin ich nur zu beschränkt das Problem zu beheben ?

        S.o. Von HTML aus gibt es definitiv keine andere Möglichkeit, warum sollte es auch zwei mehrzeilige Eingabefeld-Typen geben, das macht doch gar keinen Sinn.

        Cheatah

        ciao
        ExeCRabLE

        Gruß, Robert

        1. Sagen dir htmlspecialchars() bzw. htmlentities() was? Das könnten hübsche Lösungen des Problems sein. Damit bekommst du auch das XSS-Problem in den Griff, was ich beschrieben habe.

          Die Befehle sind mir fremd. Ich habe davon schon einmal ganz flüchtig gehört aber woher kommen sie und wie werden die eingesetzt ?

          Hm, dann solltest du vielleicht den Autor dieses Programmes darauf hinweisen oder selbst dieses Tool hacken. Immerhin sehe ich da eine gravierende Sicherheitslücke.

          Wie entshet denn diese Lücke ?

          Bei Tabellen und DIVs kann der Broswer die verschachtelten Tags erkennen, aber bei textarea nicht. Das wäre natürlich Sinnvoll wenn er es könnte aber vom Grundgedanke des Textareas macht diese Ünterstützung erst einmal gar keinen Sinn ... :) Würde ich an deren Stelle auch nicht in den Ausschuss bringen.

          Gruß, Robert

          1. Sagen dir htmlspecialchars() bzw. htmlentities() was? Das könnten hübsche Lösungen des Problems sein. Damit bekommst du auch das XSS-Problem in den Griff, was ich beschrieben habe.

            Die Befehle sind mir fremd. Ich habe davon schon einmal ganz flüchtig gehört aber woher kommen sie und wie werden die eingesetzt?

            Beide Funktionen ersetzten gewisse HTML-Sonderzeichen in ihre maskierte Form, htmlspecialchars() macht aus < &lt;, > &gt;, & &amp;, " &quot;. htmlentities() ersetzt sogar diverse Sonderzeichen wie Umlaute. Schau mal hier vorbei: http://www.php.net/manual/de/function.htmlspecialchars.php, http://www.php.net/manual/de/function.htmlentities.php

            Hm, dann solltest du vielleicht den Autor dieses Programmes darauf hinweisen oder selbst dieses Tool hacken. Immerhin sehe ich da eine gravierende Sicherheitslücke.

            Wie entshet denn diese Lücke?

            Nun, wenn der Text aus der Datenbank wird direkt ins textarea eingefügt, das heißt, wenn ich irgendwie Folgendes in die Datenbank als Artikel einfügen kann, wirst du bei jedem Bearbeiten dieses Artikels freundlich begrüßt:

            <script type="text/javascript" language="JavaScript">
            <!--
            alert('Viel Spaß beim Arbeiten!');
            //-->
            </script>

            Auf diese Weise kann ich aber auch Popus öffnen, diverse Sicherheitslücken von Browsern ausnutzen, Cookie-Daten stehlen, ...

            Gruß, Robert

            1. Beide Funktionen ersetzten gewisse HTML-Sonderzeichen in ihre maskierte Form, htmlspecialchars() macht aus < &lt;, > &gt;, & &amp;, " &quot;. htmlentities() ersetzt sogar diverse Sonderzeichen wie Umlaute. Schau mal hier vorbei: http://www.php.net/manual/de/function.htmlspecialchars.php, http://www.php.net/manual/de/function.htmlentities.php

              Danke, ich habe es mir angeschaut. Ich verstehe erhrlich gesagt nicht, warum und wo ich den Sourcecode verändern soll. Ich habe in meinem Sourcecode keinerlei Sonderzeichen (CSS & PHP-Sprachdatei)

              Nun, wenn der Text aus der Datenbank wird direkt ins textarea eingefügt, das heißt, wenn ich irgendwie Folgendes in die Datenbank als Artikel einfügen kann, wirst du bei jedem Bearbeiten dieses Artikels freundlich begrüßt:

              [..]

              Auf diese Weise kann ich aber auch Popus öffnen, diverse Sicherheitslücken von Browsern ausnutzen, Cookie-Daten stehlen, ...

              Wenn die Datenbank nicht bewusst öffentlich, also kein Forum oder ähnliches ist und nur in einer Backend-lösung eingebaut wird, ist die Gefahr dann auch vorhanden ? Der DB Zugriff wird durch Berechtigungen (IP-Raum,Passwörter und SSL) geschützt.

              Gruß, Robert

              Danke für die Infos ! :)

              ciao
              ExeCRabLE

              1. [...] http://www.php.net/manual/de/function.htmlspecialchars.php, http://www.php.net/manual/de/function.htmlentities.php

                Danke, ich habe es mir angeschaut. Ich verstehe erhrlich gesagt nicht, warum und wo ich den Sourcecode verändern soll. Ich habe in meinem Sourcecode keinerlei Sonderzeichen (CSS & PHP-Sprachdatei)

                Auch keinen HTML-/JavaScript-Code? Genau da liegt nämlich das Problem.

                Nun, wenn der Text aus der Datenbank wird direkt ins textarea eingefügt, das heißt, wenn ich irgendwie Folgendes in die Datenbank als Artikel einfügen kann, wirst du bei jedem Bearbeiten dieses Artikels freundlich begrüßt:

                [..]

                Auf diese Weise kann ich aber auch Popus öffnen, diverse Sicherheitslücken von Browsern ausnutzen, Cookie-Daten stehlen, ...

                Wenn die Datenbank nicht bewusst öffentlich, also kein Forum oder ähnliches ist und nur in einer Backend-lösung eingebaut wird, ist die Gefahr dann auch vorhanden ? Der DB Zugriff wird durch Berechtigungen (IP-Raum,Passwörter und SSL) geschützt.

                Das hängt schließlich davon ab, wie du deinen Mitarbeitern vertraust bzw. wie sich diese der Seite gegenüber verhalten. Ein böswilliges Teammitglied, der sich ein wenig mit der Materie auskennt, kann schnell zum Problem werden. Falls du das ganze alleine administriert, ist soviel "Paranoia" natürlich nicht notwendig, denn als Admin sollte man schon gut wissen, was man tut ;-)

                Danke für die Infos ! :)

                Keine Ursache! (Da fällt mir ein, dass ich auf meiner Seite noch mehr zum Thema "Sicherheit" schreiben wollte.)

                ciao
                ExeCRabLE

                Grüße, Robert

  2. Hi,

    Nabend!

    ich nutze für mein mini CMS das Programm HTMLArea 3.0 RC1.

    Kenne ich nicht, ist das selbst ein CMS?

    Nun wird der Quelltext (alias content) aus der DB geladen und innerhalb einer textarea ausgegeben, damit man ihn bearbeiten und speichern kann.

    Hm, ne textarea hat kein schönes Syntaxhighlighting, Autoindent, passende Klammern/Tags, ... nicht sehr bequem, oder?

    Das Problem bei dem Vorgang ist, das ich keine Textareas innerhalb des contents benutzen kann, da dieser selbst in einer Textarea dargestellt wird.

    Bitte? Sollte der HTML-Code nicht vor der Ausgabe in die textarea maskiert werden, zumindest < > & "? Das riecht doch förmlich nach einer netten XSS-Schwachstelle -- oder wie geht dieses System mit JavaScript um?

    Ich glaube, das ich das Problem umgehen könnte, wenn ich ein anderes Element nutze als die Textarea.

    Das wird schwierig:

    Gibt es im HTML eine alternative zur Texteingabe bzw. Textausgabe ?!

    Höchstens input, aber Quelltext-Eingabe in einer Zeile ist nicht sehr schön ;-)

    Oder gibt es vieleicht ein ganz andere Lösung ?!

    Ja, lokal arbeiten.

    Danke schon einmal !

    ciao
    ExeCRabLE

    HTH, Robert

    1. Kenne ich nicht, ist das selbst ein CMS?

      Nein, nur ein WYSIWYG-Editor fürs Online "basteln" :)

      Nun wird der Quelltext (alias content) aus der DB geladen und innerhalb einer textarea ausgegeben, damit man ihn bearbeiten und speichern kann.

      Hm, ne textarea hat kein schönes Syntaxhighlighting, Autoindent, passende Klammern/Tags, ... nicht sehr bequem, oder?

      HTMLArea hat schon recht viele Plugins, um Syntax vorzuheben usw.

      Das Problem bei dem Vorgang ist, das ich keine Textareas innerhalb des contents benutzen kann, da dieser selbst in einer Textarea dargestellt wird.

      Bitte? Sollte der HTML-Code nicht vor der Ausgabe in die textarea maskiert werden, zumindest < > & "? Das riecht doch förmlich nach einer netten XSS-Schwachstelle -- oder wie geht dieses System mit JavaScript um?

      HTMLArea ist eher ein "Textarea"-Aufsatz. :)

      Ich glaube, das ich das Problem umgehen könnte, wenn ich ein anderes Element nutze als die Textarea.

      Das wird schwierig:

      Gibt es im HTML eine alternative zur Texteingabe bzw. Textausgabe ?!

      Höchstens input, aber Quelltext-Eingabe in einer Zeile ist nicht sehr schön ;-)

      Eben, so wie es ausieht, muss ich wohl ein Java-Plugin nutzen, um meine Quelltexte aus der DB zu bearbeiten. Der Gedanke gefällt mir momentan überhaupt nicht.

      Oder gibt es vieleicht ein ganz andere Lösung ?!

      Ja, lokal arbeiten.

      Das darf eben nicht sein, da es sich um eine verteiltes DB-System handelt und ich nicht möchte das spätere Entwickler mit cut&paste unter PHPMyAdmin oder anderen proggis rumbasteln :)

      HTH, Robert

  3. Lieber ExeCRabLE,

    wenn Du mit htmlArea als WYSIWYG-Editor einzelne HTML-Seiten editieren willst, dann ist das vor allem für Leute gut, die mit dem Quellcode nicht umgehen können/wollen. Spätestens aber wenn Du Eingabefelder (also Formulare im Allgemeinen) auf einer HTML-Seite editieren willst, dann _hast_ Du Ahnung vom Quelltext und kannst darin auch direkt und ohne WYSIWYG editieren. Dazu kannst Du Dir dann den Quelltext in eine textarea ausgeben lassen, wobei HTML-spezifische Zeichen umgewandelt werden müssen (z.B."<" als "&lt;" usw.).  Ob das htmlArea verkraftet... probiers aus!

    Ich hatte gestern das hier gefunden: tinyMCE. Der kann auch in einem <div> seinen Editor darstellen. Damit sollten dann auch <textareas> möglich sein.

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    1. Nachtrag:

      habe gerade in meinem Thread weiter unten etwas von htmlArea 3.0 RC-1 gelesen.

      Damit kannst Du auch eine Textarea darstellen.

      Liebe Grüße aus Ellwangen,

      Felix Riesterer.

      1. Nachtrag:

        habe gerade in meinem Thread weiter unten etwas von htmlArea 3.0 RC-1 gelesen.

        [..]

        Felix Riesterer.

        Hallo Felix,

        htmlArea habe ich schon eingesezt, aber es hat in der Standardeinstellung erhebliche Probleme mit textareas. Daher bin ich auch überhaupt auf der Suche nach einer lösung :)

        Ich habe mir das tinymce angeschaut und es ist "etwas" unübersichtlich aber besser zu implementieren. Ich habe noch probleme die WYSIWYG Anzeige zu deaktivieren und die Größe nach wunsch zu steuern. Falls du mir dabei helfen kannst... ansonsten werde ich als "voll Profi" ;-) noch  eine lange zeit brauchen.

        Ciao
        ExeCRabLE

        1. hi

          Ich habe mir das tinymce angeschaut und es ist "etwas" unübersichtlich aber besser zu implementieren.

          Es ist nur schlecht dokumentiert :)

          Ich habe noch probleme die WYSIWYG Anzeige zu deaktivieren und die Größe nach wunsch zu steuern. Falls du mir dabei helfen kannst...

          was genau bedeutet "WYSIWYG Anzeige deaktivieren" ? Willst du einfach die Icons weghaben?

          so long
          ole
          (8-)>

          --
          Des Mannes Auto ist seine Burg.
          Normalerweise ist ja des Mannes Haus seine Burg, aber nur wenn er den Drachen erschlagen kann, der darin wohnt.
  4. Hi,

    Das Problem bei dem Vorgang ist, das ich keine Textareas innerhalb des contents benutzen kann, da dieser selbst in einer Textarea dargestellt wird.

    LOL. Das kann ich nachvollziehen - diese Stümper! >;->

    Oder gibt es vieleicht ein ganz andere Lösung ?!

    Klar.

    1. Mittels PHP die Datei einlesen und escapen -> $fileContent=rawurlencode(fread($handle,filesize($serverFile)));
    2. Diese Variable zu einer JavaScript-Variablen umwandeln -> fileContent="$fileContent";
    3. Inhalt unescapen und in die Textarea schreiben -> document.editor.data.value=unescape(fileContent);

    Gruß, Cybaer

    --
    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!