Hello @dedlfix,
Interessant ist diese Variante:
var_dump("00" == "0"); var_dump("00" === "0");
ergibt
bool(true) bool(false)
Der Identitätsoperator erscheint mir daher doch richtig zu sein!
Gut, einen Punkt für den ===. Aber dann ist da immer noch Punkt 3 und 4b, an dem die Prüfung scheitert.
Es ist zudem ein Spezialfall, vermutlich an dieser Stelle der einzige. Aber ein einziger Spezialfall reicht i.d.R., um ein System kompromittieren zu können, egal ob willentlich oder unwissentlich.
Wenn man das geplante Passwort-Modul als Ganzes betrachtet, wird die Lücke an der einen Stelle durch nachfolgende Prüfungen geschlossen. Wenn man aber nun - warum auch immer - einzelne Funktionen für andere Zwecke benutzt, dann kann das schon mächtig in die Hose gehen.
Darum immer meine Forderung:
Jede Funktion muss genau das leisten, was man von ihr erwartet, nicht weniger und nicht mehr (also keine Seiteneffekte), egal, ob man sie einzeln oder im Verbund mit anderen verwendet.
Glück Auf
Tom vom Berg
Es gibt nichts Gutes, außer man tut es!
Das Leben selbst ist der Sinn.