Alle Date werden bei JEDEM Kontextwechsel entsprechend des neuen Kontextes behandelt.
- Bei DB-Queries ist zu escapen,
- bei Ausgaben ins HTML ist htmlspecialchars richtig.
Und das jedesmal wieder.
Moment - alle Daten escapen mit Ausnahmen von Passwörtern, weil die sonst verfälscht würden und sowieso durch einen Hash Algorithmus laufen?
Sorry für die Verwirrung 😅
Sobald Du auf die auch sonst dumme Idee kommst, etwas wie
<p>Das eingegebene Passwort „<?=$POST['password'];?>“ war leider falsch.</p>
auszugeben muss natürlich das Passwort entschärft werden. Sonst faxt der Anwalt des Konkurrenten mit Kundenkonto, dessen Passwort „<canvas style="display:hidden">“ lautet, den Support an und beschwert sich „wegen des Fehlens von Impressum, Datenschutzerklärung und Nennung des Jugendschutzbeauftragten“ und schickt die Rechnung über 1500 Euro gleich mit…
Ansonsten verbietet sich (fast) jede Änderung des eingegebenen Passwortes. Die Funktionen zur Erzeugung des Passwort-Hashes können (hoffentlich) sogar „Binärmüll“ (nicht darstellbare Zeichen) sicher verarbeiten und es gibt keinen einzigen vernünftigen oder einer kritischen Betrachtung standhaltenden Grund, ein für eine Anmeldung benutztes Passwort auch nur irgendwo wieder auszugeben oder anderweitig zu verwenden.