白痴防止には、単純な入力検証以上のものが含まれます。私はその定義にそのようなことすら含めないでしょう。
入力検証は、ユーザーデータをサニタイズおよび検証して、違法/無意味な値を排除するプロセスです。これは、攻撃(たとえば、SQLインジェクション攻撃)から自分自身を保護するだけでなく、明白なものを排除するために、常にプログラムの外部からの情報を使用して実行する必要があります。
私は、ばか防止は、そうでなければ合法的な手段によってユーザーが誤って彼/彼女に大きな損害を与えないようにするためのロジックのセットであると考えます。
たとえばrm
、コマンドを拒否してrm -rf /
バリアントを閉じることは、検証や正確性とは関係ありません。これは完全に有効なコマンドです。残念ながら、これはUnix / Linuxのすべてのディスクからすべてのデータを消去することができるコマンドです。これを証明するばかは、このコマンドを拒否し、を提案するrm -rf --i-really-mean-this /
か、対話モードの場合は、警告後にユーザーに肯定応答を入力させます。
システムを破壊するものはすべて、ばか防止されるべきです。恥ずかしさの原因となる可能性のあるものも候補となります(たとえば、「このテキストを本文に記載していても、添付ファイルなしでこのメールを送信しますか?」、「このメールを会社全体?」)
白痴防止とは、QA(最高の馬鹿になろうとする)と開発(これらのシナリオをすべて予測し、それらに基づいて設計する)の間のコラボレーションです。
よりわかりやすい同義語として、「破壊的なコードパス分析」または「重要な操作に対するユーザーフィードバックを有効にする」ことをお勧めします。それを何と呼んでも、設計プロセスのできるだけ早い段階で実際に開始する必要があります。