<form action=""> vs. <form action="<form action="$_SERVER['PHP_SELF']">
bearbeitet von JuliusHallo 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:
~~~html, bad
<!doctype html>
<form action="<?=$_SERVER['SCRIPT_NAME']?>"><input></form>
~~~
wir erhalten als Ergebnis:
~~~html, bad
<!doctype html>
<form action="/Schreibtisch/" onmouseover="alert('hack3d!').php"><input></form>
~~~
Gruß
Julius
---
[^1]: Ja, ich weiß: Niemand benennt seine Scripte so, aber hier geht es ums Prinzip.