HTML Code bei Eingabe erlauben

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

  • #16
    @3DMax
    Den Fall, dass JS via src oder href Attribut eingeschleust wird, könntest du mit weiteren RegExp ziemlich gut einschränken. Prüfung auf ungültige Zeichen und Dateiendungen mit RegExp wären doch relativ einfach umzusetzen.
    Die Frage ist nurr ob sich der Aufwand lohnt unter dem Gesichtspunkt, dass es keine 100%-ige Sicherheit geben kann Irgendjemand findet immer irgendwo die Lücke...

    Gruss

    tobi
    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


    • #17
      PHP-Code:
      <?php 
       
      /**   
      * Allow these tags   
      */ 
      $allowedTags '<h1><b><i><a><ul><li><pre><hr><blockquote><img>';

      /**   
      * Disallow these attributes/prefix within a tag   
      */  

      $stripAttrib 'javascript:|onclick|ondblclick|onmousedown|onmouseup|onmouseover|'.
      'onmousemove|onmouseout|onkeypress|onkeydown|onkeyup';

      /**   
      * @return string   
      * @param string   
      * @desc Strip forbidden tags and delegate tag-source check to removeEvilAttributes()   
      */  

      function removeEvilTags($source)  
      {      
         global 
      $allowedTags;      
         
      $source strip_tags($source$allowedTags);  
         return 
      preg_replace('/<(.*?)>/ie',"'<'.removeEvilAttributes('\\1').'>'"$source);  
      }   

       
      /**   

      @return string   
      * @param string   
      * @desc Strip forbidden attributes from a tag   
      */  

      function removeEvilAttributes($tagSource)  
      {      
         global 
      $stripAttrib;      
         return 
      stripslashes(preg_replace("/$stripAttrib/i"'forbidden'$tagSource));  
      }    

      // Will output: <a href="forbiddenalert(1);" target="_blank" forbidden =" alert(1)">test</a>  

      echo removeEvilTags('<a href="javascript:alert(1);" target="_blank" onMouseOver = "alert(1)">test</a>');  

      ?>
      So habe das hier mal gefunden im php manuel sichert doch einiges ab oder net ? Habe es auch geteste. Ich hatte ja vorher nur strip_tags($meinText, $erlaubt); Da waren ja wie ihr schon festgestellt habt mehrere lücken.
      Zuletzt geändert von Blitzschlag; 29.02.2008, 19:34.

      Kommentar


      • #18
        joh, ist schon einigermaßen sicher, aber nicht ganz
        PHP-Code:
        echo removeEvilTags("<img src=foo.png onerror=alert('XSS') />"); 

        Kommentar


        • #19
          Man ihr macht mich fertig.
          Also ich habe das erstmal als grundlage genommen denke, dass ich das noch erweitere. Vielleicht hat ja einer von euch eine idee.
          Muss ja irgendwie möglichsein. Wenn ich mir myspace anschaue. Dort haben die Mitglieder auch sowas bzw. dürfen html und css benutzen mmmm.

          Nein ich mache Myspace nicht nach

          Kommentar


          • #20
            warum benutzt du nicht einfach bb-code, da gibt es doch ganz gute parser.

            myspace, da war doch was.
            ach ja : Wurm schlängelt sich durch MySpace

            Kommentar


            • #21
              Selbst wenn du alle Eventhandler und javascript in src- bzw. href-Attributen entfernst, könnte es durch einen Bug im Browser sein, das du ein JavaScript als Bild einbindest, indem du entsprechende Header setzt. Oder ein behaviour-Skript im IE (im Stile des png behaviour).

              Kommentar


              • #22
                die funktion removeEvilAttributes kann man übrigens dank stripslashes auch mit einem simplen backslash überlisten.

                echo removeEvilTags('<a on\MouseOver = "alert(1)">test</a>');

                Kommentar


                • #23
                  Jetzt muss ich lachen andscheinend macht ihr euch mehr Gedanken darum, wie man "hack" als Sicher zu Programmieren.

                  Nicht böse gemeint aber vielleicht hat ja jemand eine Lösung HTML Code zu erlauben und sicher zu fahren.

                  Kommentar


                  • #24
                    Jetzt muss ich lachen andscheinend macht ihr euch mehr Gedanken darum, wie man "hack" als Sicher zu Programmieren.

                    Nicht böse gemeint aber vielleicht hat ja jemand eine Lösung HTML Code zu erlauben und sicher zu fahren.
                    Meinst du, jemand der unerlaubten Code bei dir einschleusen will verwendet sauberes HTML? Wenn der Browser on\Event interpretiert, hat deine Funktion an der Stelle ein Loch!

                    Kommentar

                    Lädt...
                    X