Gunnar Bittersmann: Javascript Ajax Upload Sonderzeichen

Beitrag lesen

@@DIrk H.

Hier ein paar Zeilen code...

Und da ist er auch schon wieder, der Kapitalfehler.

	if( $_GET["testData"] )

			$DATA = $_GET["testData"];
	else
			$DATA = 'Täst';

Hier weist du der Variablen $DATA die Nutzereingabe (sofern vorhanden) zu.

echo "  <HTML>
        ⋮
          <INPUT id='testData' name='testData' value='" . $DATA . "'>

Und hier gibt du die Nutzereingabe unbehandelt als HTML aus – einschließlich Schadcode (JavaScript), den jeder nach Belieben einschleusen kann. Sicherheitsloch der Größe eines Hangartores. Deshalb:

Niemals Daten unbehandelt mit PHP in HTML schreiben!!

Du musst Daten vor der Ausgabe in HTML unbedingt mit htmlspecialchars() behandeln:

echo "  <HTML>
        ⋮
          <INPUT id='testData' name='testData' value='" . htmlspecialchars($DATA) . "'>

LLAP 🖖

--
„Wir haben deinen numidischen Schreiber aufgegriffen, o Syndicus.“
„Hat auf dem Forum herumgelungert …“
(Wachen in Asterix 36: Der Papyrus des Cäsar)