HTML-Cleaner?

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

  • HTML-Cleaner?

    Hi

    Nach langer Zeit mal wieder ein Thread von mir ^^

    Ich brauche eine Möglichkeit 1. HTML Code zu reparieren und 2. schädliches Zeug zu entfernen (primär also halt Javascript).

    Per Google findet man leider praktisch nur Tidy was jetzt irgendwie nicht das Entfernen von JS unterstützt (zumindest hab ich nichts derartiges im Manual finden können).
    Empfohlen wurde mir Privoxy, nur ist das halt schon wieder ein wenig zuviel ... das ganze soll entweder in PHP oder besser noch als cmd-Programm ablaufen (von wegen Geschwindigkeit) und eigentlich nicht gleich einen ganzen Proxy aufsetzen

    striptags kommt nicht in Frage, die Funktion ist dermaßen buggy, dass es fast schon eine Schande ist.

    Irgendwann irgendwo habe ich mal einen preg gesehen, der jegliche JS-Attribute+Script-Tags entfernt - das zusammen mit tidy wäre eventuell eine Lösung - aber eigentlich würde ich liebend gerne ein kommdanozeilen-basiertes Skript haben, was alles vereint und ggf. auch noch mehr Optionen z.B. hinsichtlich CSS gibt (z.B. keine globalen Befehle im CSS)


    Hat da jemand vielleicht eine passende Idee zu? (Oder bin ich da echt schon zu anspruchsvoll? ^^; )

    Zur Not müsste denn die preg+tidy-Lösung her... (hat jemand gerade einen derartigen Regex zur Hand? xP)

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

  • #2
    Und einfach alles zwischen <script type="text/javascript" ... > und </script> entfernen ist nicht genug ?
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Original geschrieben von jahlives
      Und einfach alles zwischen <script type="text/javascript" ... > und </script> entfernen ist nicht genug ?
      <a href="/impressum/" onclick="window.location = 'http://www.google.de'">test</a>

      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
      Wie man Fragen richtig stellt

      Kommentar


      • #4
        Quick and Dirty:
        Einfach alle Events mittels str_replace() mit 'x' ersetzen. So funzt garantiert kein JS mehr
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          Für mich stellt sich da erst mal die Frage, ob man da mit preg rangehen will - oder nicht lieber mit einem DOM-Parser?

          Kann Tidy auch wohlgeformtes XHTML "erzeugen"?
          Dann würde ich da nachher drüberlaufen, und mit on beginnende Attribute rauslöschen.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Kann Tidy auch wohlgeformtes XHTML "erzeugen"?
            Was bei Tidy rauskommt ist Standard konform - das sollte auch mit XHTML gehen. Schnell ist das aber keines Falls.
            Dom-Parser ist auch eine Idee, einfacher ist aber wohl Tidy mit vorherigem entfernen von Events und Skript Tags.
            Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

            Kommentar


            • #7
              ... einfacher ist aber wohl Tidy mit vorherigem entfernen von Events und Skript Tags.
              vorher ist es aber evtl. nicht konform, deswegen wahsagas vorschlag.

              Kommentar


              • #8
                Original geschrieben von tontechniker
                einfacher ist aber wohl Tidy mit vorherigem entfernen von Events und Skript Tags.
                Darauf wird es jetzt wohl auch hinaus laufen... da ich nicht endlos Zeit habe (bzw. eigentlich schon, das Projekt aber trotzdem endlich fertig kriegen will), nutze ich da eine bereits vorhandene Funktion in PHP für, die irgendeiner der anderen Programmierer mal genau für diesen Zweck geschrieben hat, und die setzt genau auf diese Kombination ^^

                Trotzdem finde ich es verwunderlich, dass dafür nirgends was fertiges existiert oo;
                nyo~

                Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                Wie man Fragen richtig stellt

                Kommentar


                • #9
                  Trotzdem finde ich es verwunderlich, dass dafür nirgends was fertiges existiert oo;
                  Im Prinzip fehlt nur eine passende Option für Tidy. Dort wird der DOM Baum sowieso durchgegangen. Hab gerade mal gesucht - hast du dir Detagger schon einmal angeschaut?
                  Zuletzt geändert von tontechniker; 09.07.2007, 23:45.
                  Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                  Kommentar


                  • #10
                    Original geschrieben von tontechniker
                    Im Prinzip fehlt nur eine passende Option für Tidy. Dort wird der DOM Baum sowieso durchgegangen. Hab gerade mal gesucht - hast du dir Detagger schon einmal angeschaut?
                    Ne kannte ich auch nicht - ja an sowas in der Art dachte ich; nur halt kostenlos ^^;

                    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                    Wie man Fragen richtig stellt

                    Kommentar


                    • #11
                      Ich würde auf jeden Fall was DOM-Basierendes empfehlen, das jedes Tag auseinandernimmt, wieder zusammenbaut und den Inhalt mit htmlentities kodiert. Einfache regexe kann man zu leicht mit irgendwelchen <SC\RIPT>-tricksereien täuschen, die am Ende dann doch vom Browser interpretiert werden.

                      Kommentar


                      • #12
                        Eigentlich könnte man sowas doch recht einfach mit PHP / DOM realisieren. Die Frage ist ob man auch versucht den Code zu validieren (ist das über DOM überhaupt möglich?) oder dafür Tidy verwendet.
                        Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                        Kommentar


                        • #13
                          Ich versuche gerade jTidy für meine Zwecke dahingehend aufzubohren~
                          Ist leider alles gerade nicht ganz so einfach - was allein damit anfängt, dass mein größtes Projekt in Java bisher ein Parser-Bin-Baum war, den ich nur von Delphi portiert hab - und der Code ist auch nicht gerade etwas, was ich als "wunderbar" oder "vorbildlich" bezeichnen würde ... Kapselung unmöglich, weil die Klassen von außerhalb des packages praktisch unbenutzbar sind (die paar public-Methoden - das hätte man sich echt schenken können...) ja allein die Tatsache, dass die meisten (/alle?) Copyright-Hinweise nur bis zum Jahr 2000 reichen und ungefähr 300 Warnings allein wegen alter Coding-Stile kommen macht die Sache prekär _-_
                          Naja, mal später weiter gucken...

                          Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                          bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                          Wie man Fragen richtig stellt

                          Kommentar


                          • #14
                            Das was du suchst könnte des hier sein: http://htmlpurifier.org/

                            Wir setzen das Teil in produktiv Systemen ein. Theoretisch wäre auch das Implementieren eines Webservices sinnvoll wenn es auf mehreren Auftritten eingesetzt werden soll.

                            Kommentar


                            • #15
                              Das was du suchst könnte des hier sein: http://htmlpurifier.org/
                              Sieht eigentlich ganz nett aus, es gibt Unittests und Objektorientiert ist es auch ... aber soviel Regex - ob das gut ist?
                              Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                              Kommentar

                              Lädt...
                              X