Andi: Input Sanitization tatsächlich nicht notwendig? :O

Beitrag lesen

Okay, vielleicht ein BISSCHEN provokant, aber hear me out:

Ist es tatsächlich sinnlos, User Input zu säubern?

"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 &lt; etc. verfälscht würde.

...was mich zu meiner eigentlichen (fatalen?) Erkenntnis bringt, dass ich meinen Input eigentlich GAR NICHT "desinfizieren" (sanitizen) muss! Nochmal, hear me out:

Gegeben: $_POST["username"] und $_POST["passwort"]

...solange ich diese nicht z.B. in einer Datenbank abspeichere, sollten sie mir doch nicht gefährlich werden können, oder? ...und selbst DA verwende ich Prepared Statements! (abgesehen davon, dass die Speicherung von Klartext-Passwörtern sowieso grob fahrlässig ist und daher selbige natürlich gehashed werden - ihre Ursprungserscheinung daher ändern...)

Ich könnte natürlich vielleicht den TYP von $_POST (String, Integer, Array, Binary, ...) bestimmen - aber selbst der ist in seiner ursprünglichen Form durch das HTTP Protokoll stets ein String, oder?

Wie soll da z.B. Cross-Site-Scripting möglich sein?

Natürlich gibt es auch FILTER_VALIDATE_EMAIL and the like, ....aber diese sagen nichts über die SICHERHEIT, sondern vielmehr über die WOHLGEFORMTHEIT des Inputs aus...?

Daher - eventuell trim() über den Input und gut ist?

Vielen Dank für eure Gedanken,

Andi