ええ、ここには強く反対します。あなたの特定のユースケースはあなたにとってはシンプルに見えるかもしれませんが、UI で単純なオーバーライドを実装することは、わずかな利便性の向上に対して、重大なセキュリティリスクをもたらします。
その「手間」こそがセキュリティ機能なのです!
Rails コンソールを使用するか、サイト全体の設定を切り替える必要があるという不便さは、実際には重要なセキュリティ機能です。これは「セキュリティブレーキ」として機能し、管理者に極めて敏感な操作を行う際に、意図的で手間のかかるプロセスを強いるからです。
ユーザーのメールアドレスを変更することは、そのアカウントの鍵を差し出すことに等しく、新しいメールアドレスでパスワードリセットをトリガーして、元のユーザーを完全にロックアウトし、新しいメール所有者に完全な制御権を与えることができます。
この「手間」が防ぐ主な攻撃ベクトル:
-
管理者アカウントの侵害! - これが最も重大なリスクです。攻撃者がフィッシングやパスワードの使い回しなどを通じて管理者アカウントにアクセスした場合、単純な UI ボタンや切り替え機能があれば、他のスタッフを含む任意のユーザーのアカウントを静かに、かつ容易に乗っ取れてしまいます。Rails コンソールを介したシェルアクセスが必要という要件は、強力なセキュリティ層を提供します。
-
ソーシャルエンジニアリング! - これによりソーシャルエンジニアリングの扉が開きます。悪意のあるユーザーが正当なユーザーになりすまし、管理者にメールアドレスの変更を説得する可能性があります。やはり、現在の「手間のかかる」プロセスは、管理者がリクエストの真正性を確認したり、慎重に検討したりする可能性を大幅に高めます。
-
内部犯行の脅威 - 悪意のある管理者がこの機能を悪用してアカウントを乗っ取る可能性があります。
このような稀でリスクの高い管理操作においては、Rails コンソールが適切です。なぜなら、これにより操作を行う人物がセッションの侵害ではなく、サーバーへのアクセス権を持っていることが保証されるからです。さらに、この操作は意図的であり、特定の技術的知識を必要とし(シェル履歴に記録されます)。