Rolf B: Kurze Antwort: Natürlich ist sie notwendig

Beitrag lesen

Hallo Andi,

...aber nicht so, wie Du meinst.

Sanitizing eines Usernamens dürfte beinhalten:

  • Entfernen von führenden und abschließenden Spaces

Mehr nicht.

Wenn man manche Zeichen nicht zulassen möchte, kann man darauf prüfen und den Usernamen zurückweisen, aber das ist dann kein Sanitizing mehr, sondern Plausibilisierung.

Sanitizing eines Passworts würde ich beim Login ebenfalls mit einem trim() durchführen und beim Vergeben des Passworts würde ich führende, abschließende und Spaces im Passwort zurückweisen. Eine Sequenz aus zwei Spaces auch. Denn solche Passwörter sind aus meiner Sicht ein Garant für "Ich komm nicht mehr rein"… Aber das ist deine Entscheidung.

Mehr nicht.

Für die DB Abfrage wird das Passwort gehasht und der Username entweder escaped oder, so wie bei Dir, als Argument an ein prepared statement gehängt.

Mehr nicht.

Wenn Du den Usernamen dann auf deiner Seite anzeigst, DANN musst Du ihn mit htmlspecialchars maskieren. Nicht sanitizen.

Sanitizing machst Du, wenn klar ist, dass bestimmte Zeichen bei der Verarbeitung der Eingabe stören, wie z.B. Klammern und Minuszeichen in einer Telefonnummer. Die sanitized Du aber nur für die Nummernsuche in der DB, nicht generell.

Sanitizing ist immer potenzieller Datenverlust. Daher muss man damit sehr zurückhaltend sein und gut überlegen, wo es sinnvoll ist. Aber dort ist es dann auch nötig.

Rolf

--
sumpsi - posui - obstruxi