Ich habe heute den Code einer Webanwendung überarbeitet und bin dabei in der Basisklasse für alle Webseiten auf etwas Ähnliches gestoßen:
if (Request.QueryString["IgnoreValidation"] != null)
{
if (Request.QueryString["IgnoreValidation"].ToUpper() == "TRUE")
{
SessionData.IgnoreValidation = true;
}
}
Mir scheint dies eine sehr schlechte Sache™ zu sein, also habe ich sofort alle Spuren dieser Markierung aus dem Code entfernt. Zum einen waren mehrere if-Anweisungen eingestreut, die den Wert des Flags überprüften, was zu einer unübersichtlichen und unklaren Logik führte. Zweitens stieß ich auf ein anderes, noch gefährlicheres Flag namens "IgnoreCreditCardValidation". Sie können sich denken, was diese Flagge bewirkt hat...
Dann dachte ich darüber nach und erinnerte mich an ein ähnliches Beispiel aus einer früheren Tätigkeit. Im Code einer Anwendung, die als "sicheres Authentifizierungsmodul" verkauft wurde, gab es einen QueryString-Parameter, mit dem das Standardverhalten außer Kraft gesetzt wurde und der es jedem, der ihn kannte, ermöglichte, die Authentifizierung zu umgehen.
Jetzt ist meine Frage eher eine Bestätigung, ist diese Praxis so schlimm, wie sie in meinem Kopf erscheint, oder reagiere ich nur über und dies ist alltäglich? Gibt es Fälle, in denen es einen triftigen Grund gibt, dies zu tun? Mir scheint es einfach eine schreckliche Mischung aus Faulheit und Nachlässigkeit zu sein.
Falls es sich um eine Kopie handelt, können Sie mich gerne auf die richtige Seite verweisen.
Danke!