Gegeben: $_POST["username"] und $_POST["passwort"]
...solange ich diese nicht z.B. in einer Datenbank abspeichere,
Nun, das Passwort wirst Du ja hoffentlich durch die Password-Funktionen jagen. Aber der Benutzername? Der steht häufig mit dem Hash des Passworts in der Datenbank…
Aus
SELECT `pw_hash` FROM `shadow` WHERE username='$_POST["username"]';
kann bei der Ersetzung ganz fix ...
SELECT `pw_hash` FROM `shadow` WHERE username='';UPDATE shadow SET `pw_hash`='$2y$10$V2yZerKdNLhJiExdhBsQyuD3CcQwiUqelw6EnPlmj4oYM5OMBJoHC';
... werden.
Dazu muss nur
';UPDATE shadow SET `pw_hash`='$2y$10$V2yZerKdNLhJiExdhBsQyuD3CcQwiUqelw6EnPlmj4oYM5OMBJoHC
als „Passwort“ übermittelt werden - und schon hat jeder Nutzer "hallo" als Passwort". (Bevor jemand damit kommt: Konkret ist nochwas nötig…)
"Angefangen" hat alles mit der Überlegung, was wohl passieren würde, wenn ich ein Passwort, das "&<>", etc. enthält, durch htmlspecialchars, filter_var, etc. jage, da dieses ja dann mit < etc. verfälscht würde.
Du willst das bitte richtig filtern. Es kommt auf den Kontext an, in welchen gewechselt wird!