私は今日のWebアプリケーションにいくつかのコードをリファクタリングし、すべてのウェブページのための基底クラスでこのような何かに出くわした:QueryStringをデバッグスイッチとして使用していますか?
if (Request.QueryString["IgnoreValidation"] != null)
{
if (Request.QueryString["IgnoreValidation"].ToUpper() == "TRUE")
{
SessionData.IgnoreValidation = true;
}
}
私にとって、これは非常に悪いの™のように見えるので、私は即座に削除コードからのこの旗のすべての痕跡。 1つは、フラッグの値をチェックしていたif文が数多く散在しているため、複雑で不明瞭なロジックにつながりました。第二に、私は別の、より危険な旗 "IgnoreCreditCardValidation"に遭遇しました。あなたはそれが何をしたのか推測することができます...
私はそれについて考えなければならず、以前の仕事から同様の例を思い出しました。 「安全な認証モジュール」として販売されているアプリケーションのコードには、デフォルトの動作を上書きするために使用されるQueryStringパラメータがあり、それを知っている誰でも認証をバイパスすることができます。
私の質問は、私の頭の中にあるように悪いというこの確認であるか、私は過度に反応しています。これは一般的ですか?これを行う正当な理由がある場合はありますか?私にとっては、それはちょうど怠惰と不注意のひどい組み合わせのように思える。
これが重複している場合は、私に正しい方向を教えてください。
ありがとうございます!
誰もが映画のウォーゲームでバックドアを覚えていますか? –
いいえ、申し訳ありません。私は2だった: –
誰もあなたのドアをノックしたが、なぜ彼らの無視フラグがもはや機能しないのだろうか? –