Javascript Ajax Upload Sonderzeichen
bearbeitet von
@@DIrk H.
> Hier ein paar Zeilen code...
Und da ist er auch schon wieder, das **Kapitalfehler**.
> ~~~php
> if( $_GET["testData"] )
>
> $DATA = $_GET["testData"];
> else
> $DATA = 'Täst';
> ~~~
Hier weist du der Variablen `$DATA`{: .language-php} die Nutzereingabe (sofern vorhanden) zu.
> ~~~php
> 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!!**{: style="font-size: 1.5em"}
Du musst Daten vor der Ausgabe in HTML **unbedingt** mit [`htmlspecialchars()`{: .language-php}](http://php.net/manual/de/function.htmlspecialchars.php) behandeln:
~~~php
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)