BBCode - welcher Parser?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • BBCode - welcher Parser?

    Hallo!
    Für mein nächstes Projekt brauche ich einen guten BBCode Parser. Bis jetzt habe ich nur mit dem BBCode-Parser von Christian Seiler gearbeitet (bin bis jetzt auch ganz zufrieden damit). Es geht mir jetzt prinzipiell mal um die Sicherheit. Also, Vermeidung von XSS etc.... Nachdem ich mich jetzt ein bisschen informiert habe, scheint mir "SafeHTML" (pixel-apes.com) und den SAX3-Parser von PEAR recht gut zu sein. Ich wollte mal eure Meinungen bzw. Erfahrungen zu den verschieden BBCode Parsern wissen wollen.

  • #2
    Re: BBCode - welcher Parser?

    Was gefällt dir an Christians Parser nicht - in Punkto Sicherheit?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Naja, wenn ich mir unter http://ha.ckers.org/xss.html das XSS Cheat Sheet anschaue dann gibt es ja unzählige XSS attacken. Soweit ich das festgestellt habe, hat der BBCode Parser von Chrisitian Seiler keinen XSS Filter. Es besteht natürlich die Möglichkeit einen XSS-Filter mittels einer Callback funktion durchlaufen zu lassen (was ich wahrscheinlich auch machen werde). Praktischer wäre natürlich ein BBCode Parser welcher einen guten XSS-Filter standartmäßig hat.

      Kommentar


      • #4
        Original geschrieben von nobody2
        Naja, wenn ich mir unter http://ha.ckers.org/xss.html das XSS Cheat Sheet anschaue dann gibt es ja unzählige XSS attacken.
        Das Prinzip ist bei allen gleich - es wird etwas in einen Kontext gebracht, ohne es Kontext-spezifisch zu behandeln.
        Soweit ich das festgestellt habe, hat der BBCode Parser von Chrisitian Seiler keinen XSS Filter.
        Wozu auch?
        Wenn ich (X)HTML damit erzeugen will, nutze ich htmlspecialchars, so wie es die Beispiele zeigen, und gut is'.
        Es besteht natürlich die Möglichkeit einen XSS-Filter mittels einer Callback funktion durchlaufen zu lassen (was ich wahrscheinlich auch machen werde). Praktischer wäre natürlich ein BBCode Parser welcher einen guten XSS-Filter standartmäßig hat.
        Ich verstehe nicht, wo du da noch meinst "filtern" zu müssen.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Der Internet Explorer führt aber vor dem ausführen von JavaScript eine UTF-8 Dekodierung durch, wodurch das Javascript wieder in den ursprünglichen zustand versetzt wird. (laut "PHP-Sicherheit" von Christopher Kunz - falls du das Buch auch hast)

          Kommentar


          • #6
            Original geschrieben von nobody2
            Der Internet Explorer führt aber vor dem ausführen von JavaScript eine UTF-8 Dekodierung durch, wodurch das Javascript wieder in den ursprünglichen zustand versetzt wird. (laut "PHP-Sicherheit" von Christopher Kunz - falls du das Buch auch hast)
            Preisfrage: Wie hast du UTF-8 und htmlspecialchars in Verbindung gebracht?
            [FONT="Helvetica"]twitter.com/unset[/FONT]

            Shitstorm Podcast – Wöchentliches Auskotzen

            Kommentar


            • #7
              Original geschrieben von nobody2
              Der Internet Explorer führt aber vor dem ausführen von JavaScript eine UTF-8 Dekodierung durch, wodurch das Javascript wieder in den ursprünglichen zustand versetzt wird.
              Was soll da dekodiert werden?
              Und was meinst du mit ursprünglichem Zustand?
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Auszug aus dem Buch:
                Mit UTF-8-Kodierung lassen sich Filter, die afu Ausdrücke wie >javascript< prüfen, austricksen. Der String >javascript< könnte komplett in UTF-8 kodiert werden und würde somit zu ....(uft-8-Zeichenkette). - PHP erkennt diese Zeichenkette nicht und kann daher mit einem regulären Ausruck o.Ä. nicht gegen sie vorgehen. Der Internet Explorer führt jedoch vor der Ausführung von JavaScript eine UTF-8-Dekodierung durch - der kodierte String wird wieder zum ursprünglichen >javascript< und kann dann ausgeführt werden. Auch teilweise kodierte Zeichenketten wie etwa >java&#x73;cript< werden vom IE in den korrekten Ursprung zurückübersetzt....
                @unset: ich nutze htmlentities und gebe auch die UTF-8 Zeichenkodierung an, da ich diese benötige. Bei htmlspecialchars müsste ich auch die UTF-8 Zeichkodierung angeben, da der default-charset ISO-8859-1 ist.

                Kommentar


                • #9
                  Wenn durch htmlspecialchars Spitzklammern in Entities umgewandelt werden, wird auch der IE diesen Bereich nicht mehr als Javascript interpretieren und somit auch nicht ausführen, oder?
                  [FONT="Helvetica"]twitter.com/unset[/FONT]

                  Shitstorm Podcast – Wöchentliches Auskotzen

                  Kommentar

                  Lädt...
                  X