Julius: <form action=""> vs. <form action="<form action="$_SERVER['PHP_SELF']">

Beitrag lesen

Hallo TS,

ist nicht sicher gegen XXS-Angriffe. Du solltest den Wert $_SERVER['PHP_SELF'] entweder kontextbehandeln (htmlspecialchars()), oder aber stattdessen $_SERVER['SCRIPT_NAME'] verwenden.

Auch hier muss htmlspecialchars zum Einsatz kommen, da die Ausgabe HTML ist. Kontextwechselbehandlung macht man nicht nur, um XSS-Angriffen vorzubeugen, sondern weil es nötig ist und es sonst zu komischen Resultaten führen kann. Wenn im folgenden Beispiel das Script " onmouseover="alert('hack3d!').php[1] heißt, dann knallt es:

<!doctype html>
<form action="<?=$_SERVER['SCRIPT_NAME']?>"><input></form>

wir erhalten als Ergebnis:

<!doctype html>
<form action="/Schreibtisch/" onmouseover="alert('hack3d!').php"><input></form>

Nachtrag: Ich glaube, dass Matthias diese Problematik bereits im vorherigen Beitrag anschnitt, ich habe es noch mal ausführlicher erläutert.

Gruß
Julius



  1. Ja, ich weiß: Niemand benennt seine Scripte so, aber hier geht es ums Prinzip. ↩︎