Kaspatoo: Suche eine Art Quarantäne Container für fehlerhaftes HTML

neuer Post, vorherige Antworten können dem Archiv entnommen werden (Thread wurde archiviert, da meine Mail adresse sichtbar war)
"Die folgende Nachricht zum Thema stammt von: Kaspatoo, 29. 06. 2012, 11:29"
-----------------------------------------------

Hallo,

ich habe eine HTML seite, die über einen Eintrag in der Datenbank einen Produktbeschreibung erhält. Diese kann und darf auch als HTML Code verfasst werden.
So kommt es vor, dass als Produktbeschreibung eine kleine HTML Tabelle übergeben wird. Problem hierbei ist, dass das Table-Tag nicht geschlossen ist.
Dies führt dazu, dass mein Design trotz DIV Containern gecrasht wird.

Am besten löst man natürlich das Problem an der Quelle, es ist aber so, dass ein Lieferant für die bereitstellung der Beschreibung verantwortlich ist.
Wie gesagt, HTML Code soll weiterhin möglich bleiben.

Ich suche also nach einer Art Container, der alle in ihm enthaltenen Fehler in sich beschränkt und somit ein fehlendes HTML Tag keine auswirkung auf den Code außerhalb dieses Containers hat.

Danke für alle Ideen und Vorschläge.

Beispiel:

<div>
   vorheriger_code
</div>
<div class="sichererContainer">
   <table>
      <tr>
         <td>fehlerhafte Tabelle</td>
      </tr>
</div>
<div>
   folgender_code_ohne_fehler
</div>

  1. iFrame klingt soweit nach einer Idee, aber da wir gerade erst von Frames weggegangen sind, würde ich eine Alternative bevorzugen.

    Dem Benutzer das Validieren zeigen wäre eben so eine Lösung an der Quelle, allerdings gestaltet sich das als schwierig, da der Personenkreis sehr groß sein kann und für mich auch eher anonym ist.
    Wir sind natürlich bemüht einer geeignete derartige Lösung durchzusetzen, dennoch benötige ich zunächst eine schnell zu implementierende Lösung/ Workaround.

    Könnte man irgendwie ein neues <HTML> Tag einfügen um eine derartige Funktion zu erreichen? Habe ich ausprobiert in der normalen Variante, aber ohne Erfolg.
    Also:

    <div>  
       vorheriger_code  
    </div>  
    <HTML>  
       <BODY>  
          <table>  
             <tr>  
                <td>fehlerhafte Tabelle</td>  
             </tr>  
       </BODY>  
    </HTML>  
    </div>  
    <div>  
       folgender_code_ohne_fehler  
    </div>
    
    1. was ich zum iFrame vergessen habe, testen möchte ich das natürlich trotzdem.
      Es ist so, das die Beschreibung als Variable in der Session oder im Request liegt.
      Bei iFrame gibts man ja eine Datei als src an, ich möchte die Beschreibung aber nicht extra in einer Datei auslagern.
      Kann ich dem Frame auch eigenes HTML mitgeben?

      Danke.

      1. Hi,

        was ich zum iFrame vergessen habe, testen möchte ich das natürlich trotzdem.
        Es ist so, das die Beschreibung als Variable in der Session oder im Request liegt.
        Bei iFrame gibts man ja eine Datei als src an, ich möchte die Beschreibung aber nicht extra in einer Datei auslagern.
        Kann ich dem Frame auch eigenes HTML mitgeben?

        ich verstehe zwar dieses Problem nicht, aber man einem IFRAME auch so lustige SRCs wie folgt angeben.

          
        <iframe src="javascript:'<html><body>123</body></html>'"></iframe>  
        <!-- oder -->  
        <script>  
        function getHtml() {  
          return '<html><body>123</body></html>';  
        }  
        </script>  
        <iframe src="javascript:getHtml()"></iframe>  
        
        

        Der String, der vom enthaltenen Javascript-Code zurückgegeben wird, wird als Html interpretiert. Der kann natürlich beliebig lang sein. (Stichwort: Kontextwechsel)

        Grüße

        • Steffen
        1. Hi,

          was mir gerade noch eingefallen ist ...

            
          <div id="trashcontainer"></div>  
          <script>  
          document.getElementById("trashcontainer").innerHTML = "hi kannst du allen müll reinschreiben </table</table>";  
          </script>  
          
          

          Zum Test kannst Du ja mal nach der Zuweisung das innerHTML per alert ausgeben.

          Grüße

          • Steffen
  2. مرحبا

    es ist aber so, dass ein Lieferant für die bereitstellung der Beschreibung verantwortlich ist.

    Und dieser soll dann HTML schreiben, warum?

    mfg

    --
    Die neuen 4 Jahreszeiten: Frühling, ARSCHLOCH, Herbst und Winter!
    1. Er soll nicht unbedingt aber er tut es, also er darf es

      1. مرحبا

        Er soll nicht unbedingt aber er tut es, also er darf es

        Dann gib Ihm doch ein Werkzeug in die Hand, mit dem er das ohne HTML-Kenntnisse machen kann, statt wie jetzt, die Fehler, die er ohne Werkzeug macht, versuchen zu bereinigen.

        mfg

        --
        Die neuen 4 Jahreszeiten: Frühling, ARSCHLOCH, Herbst und Winter!
  3. Moin!

    ich habe eine HTML seite, die über einen Eintrag in der Datenbank einen Produktbeschreibung erhält. Diese kann und darf auch als HTML Code verfasst werden.
    So kommt es vor, dass als Produktbeschreibung eine kleine HTML Tabelle übergeben wird. Problem hierbei ist, dass das Table-Tag nicht geschlossen ist.
    Dies führt dazu, dass mein Design trotz DIV Containern gecrasht wird.

    Dir bleibt nichts anderes übrig, als den angelieferten HTML-Code als potentiell fehlerhaft und bösartig zu betrachten (Weiß jemand, was ein unzufriedener oder experimentierfreudiger Mitarbeiter beim Lieferanten so alles produzieren kann?).

    Es gibt diverse Sanitizer, die sowas machen - HTML Purifier ist nach einigen Meinungen dabei das beste Tool. Siehe http://htmlpurifier.org/.

    - Sven Rautenberg

  4. Hi,

    ich habe bei einem großen anbieter gesehen, dass dieser die Benutzercodes in einen eigenen body (mit html usw) kapselt. Valid ist was anderes, aber anscheind hilft es etwas!