Hello,
- 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