Vinzenz Mai: Fckeditor schreibt alles in html statt "Normal"

Beitrag lesen

Hallo,

die folgende Fallunterscheidung darf heute nicht mehr relevant sein. Hoster, die sowas uraltes PHP 4.0.x oder gar PHP 3.x anbieten, muss man meiden, da es offene Sicherheitslöcher sind.

if ( isset( $_POST ) )
   $postArray = &$_POST ;   // 4.1.0 or later, use $_POST
else
   $postArray = &$HTTP_POST_VARS ; // prior to 4.1.0, use HTTP_POST_VARS

In diesem Abschnitt wird davon ausgegangen, dass $_POST keine Arrays enthält.
Wird im Beispielcode so sein, davon darfst Du nicht immer ausgehen. Das Umkopieren der Daten aus $_POST ist überflüssig wenn nicht sogar schädlich.

Statt stripslashes wäre die benutzerdefinierte Funktion stripslashes_deep, siehe Beispiel 2 im Handbuchabschnitt zu stripslashes() anzuwenden - und zwar gleich zu Beginn des Skriptes, damit es nur eine einzige Stelle im Skript gibt, an der das zu berücksichtigen ist.

foreach ( $postArray as $sForm => $value )
{
if ( get_magic_quotes_gpc() )
  string htmlspecialchars  ( string $string  [, int $quote_style  [, string $charset  [, bool $double_encode  ]]] ) ;

hier solltest Du den Aufruf von htmlspecialchars() *weglassen* - und nicht einfach die allgemeine Syntax des Aufrufs von htmlspecialchars reinkopieren.

Dabei gilt es zu beachten, was Jens bezüglich Cross-Scripting geschrieben hat.

Freundliche Grüße

Vinzenz