Kater Karlo: XSS und tiny_mce

Hallo,

ich würde gerne tiny_mce einsetzen. Aber meine XSS Schutz spielt mir einen Streich.

  
foreach ( $_REQUEST as $var => $val )  
{  
     if(is_array($val))  
     {  
          $i = 0;  
          while($i < count($val))  
          {  
               $val[$i] = htmlspecialchars($val[$i]);  
               $i++;  
          }  
          $_REQUEST[$var] = $val;  
     }  
     else  
     {  
          $_REQUEST[$var] = htmlspecialchars ( $val );  
     }  
}  

Das hat zur Folge, dass ich als Ergebnis sowas erhalte:

1<br /><strong>2</strong><br />3<br /><span style="text-decoration: underline;">4</span>

Nach welcher Funktion muß ich suchen, um die Ausgabe wieder zu zeichenformatieren?

Bye, Karlo

  1. Hi,

    ich würde gerne tiny_mce einsetzen. Aber meine XSS Schutz spielt mir einen Streich.

    Dann entferne ihn.

    Das hat zur Folge, dass ich als Ergebnis sowas erhalte:

    1<br /><strong>2</strong><br />3<br /><span style="text-decoration: underline;">4</span>

    Nach welcher Funktion muß ich suchen, um die Ausgabe wieder zu zeichenformatieren?

    In welchem Wörterbuch muss ich suchen, um das Wort "zeichenformatieren" zu finden?

    Wenn du Zeichen mit Sonderbedeutung in HTML diese auch haben lassen willst, dann schreibe sie nicht in Entities um.

    MfG ChrisB

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.
    1. Hi,

      ich würde gerne tiny_mce einsetzen. Aber meine XSS Schutz spielt mir einen Streich.

      Dann entferne ihn.

      Aber dann hat doch das Script keinen Schutz mehr??

      1. Hi,

        ich würde gerne tiny_mce einsetzen. Aber meine XSS Schutz spielt mir einen Streich.

        Dann entferne ihn.

        Aber dann hat doch das Script keinen Schutz mehr??

        Du musst dich schon entscheiden, was du willst - entweder HTML, wie es vom Editor geliefert wird, als solches interpretieren lassen; oder alle Zeichen mit Sonderbedeutung in HTML so umwandeln, dass sie nur angezeigt, und eben nicht mehr interpretiert werden.

        Würde mich wundern, wenn TinyMCE diese Problematik nicht bereits irgendwie berücksichtigen würde - also empfehle ich einen Blick in die Doku.

        MfG ChrisB

        --
        Light travels faster than sound - that's why most people appear bright until you hear them speak.