19
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ちょうぜつAdvent Calendar 2020

Day 12

マンガでわかる入力クラッジミニアンチパターン

Posted at

936D4C12-56F0-4336-9190-8B17EE0D783C.png

(http://wiki.c2.com/?InputKludge 現在エラー)

クラッジというのは、もともと同時利用を考えて作られたものでなかったため正常に機能しない、とりあえずで採用してしまった複数の装置の組み合わせのことを意味します。

入力クラッジパターンの場合、本来は内部で整合性を取らなければならない不具合が起きている状況なのに、入力の時点で付け焼き刃な取り繕いをしてしまうことで起きる問題を表します。

特定の入力値だけに施した当て布だと、他のバリエーションには効果がありません。入力段階で全てきちんとするには、内部の仕様を網羅しなければいけない、知りすぎ問題が発生します。また、もしその後内部を修正しようとすると、こんどはクラッジから来た入力値が、ユーザーの意図しない不正なデータとなって別の不具合を生んでしまうため、内部のバグを修正できない状況が発生してしまいます。

アンチパターン本が出版された時点ではまだ認識がなかったかもしれませんが、PHP の Magic Quote は世界一有名な入力クラッジの例でしょう。こんな露骨なアンチパターンを選択せざるをえなかった当時の SQL インジェクションの惨状が伺えます。(マトモなユーザーは当時でも使いませんでしたし、現在は完全に廃止されました)

19
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?