Tom: Behandlung von Formularwerten

Beitrag lesen

Hello,

  1. Link aus POST-Variablen (z. B. bild.jpg) basteln. Etwa so:
            <a href="http://eineurl/<?php echo $variable_verzeichnis ?>/<?php echo $variable_datei ?>">Link</a>

Falsch.

<a href="http://eineurl/<?php echo htmlspecialchars($variable) ?>">Link</a>

Du hast htmlspecialchars() vergessen. Würde der Angreifer als Dateiname "></a><a href="http://boese.bu.ben/boeser/virus.html wählen (einschließlich des führenden Anführungszeichens), hätte er schon Code eingeschmuggelt und du hättest fürdahin eine Virenschleuder in deiner Empfehlungsliste:

Unvollständig!

Die gesamte URL muss auch URL-gerecht gebaut sein.
Das bedeutet, dass jeder einzelne Teil der URL auch URL-gerecht sein muss.
Jeder Parametername und jeder Parameterwert müssen einzeln url-codiert werden, z.B. mit rawurlencode() http://de2.php.net/manual/en/function.rawurlencode.php, um dann anschließend zu einer URi zusammengebaut zu werden. Die gesamte URi muss noch HTML-gerecht gemacht werden mit htmlspecialchars(). Erst dann kann man sie ohne Sorgen an den Client schicken.

Liebe Grüße

Tom vom Berg

--
Nur selber lernen macht schlau