dedlfix: Passwortvergleich soll "case sensitve" sein

Beitrag lesen

echo $begrüßung;

Falls du MySQL benutzt, kannst du LIKE BINARY verwenden, damit zwischen Groß- und Kleinschreibung unterschieden wird.
Einen Mustervergleichsoperator wie LIKE möchte man nicht zum Passwortvergleich verwenden. Da wird ein genauer Vergleich benötigt.
Es ist nicht so, dass Platzhalter eingesetzt werden müssten. Insofern ist die implizierte Behauptung, mit LIKE sei kein genauer Vergleich möglich, falsch.

Wenn du LIKE gleichberechtigt zu = verwenden willst, musst du aktiv verhindern, dass Anwender Platzhalterzeichen in Passwörtern verwenden, bzw. diese Platzhalterzeichen entschärfen.

WHERE passwort LIKE '$benutzereingabe'

Wenn in $benutzereingabe ein % steht ergibt sich

WHERE passwort LIKE '%'

Unkritisch ist hingegen

WHERE passwort = '%'

Selbst wenn du die Parameter vertauschst verbleibt eine Sicherheitslücke

WHERE '$benutzereingabe' LIKE passwort

wenn es dem Anwender gelang, ein Passwort mit % oder _ einzutragen, wobei sich diese "nur" auf eine Kennung erstreckt und nicht auf alle.

Weggelassen habe ich oben die kontextgerechte Maskierung der Werte. Die ist zwar prinzipell notwendig, verhindert aber das Platzhalterproblem nicht.

echo "$verabschiedung $name";