私が構築している Web サイトでは、ユーザーが注文を編集できるようにする必要があります。簡単です。しかし、ユーザーが他のユーザーの注文を編集できないようにするにはどうすればよいでしょうか? モデルまたはコントローラーでチェックを実行して、注文が認証されたユーザーのものであることを確認しますか?
2 に答える
ユーザー エラーに迅速に対応するために、ビュー (そうです、ビュー) にチェックを入れます。
コントローラーにチェックを入れて、データの整合性を確保します。
たとえば、Web ベースのアプリでは、ブラウザの JavaScript を使用してユーザー名を含むすべてのフィールドをチェックすることができます。これにより、ユーザーはエラーのあるトランザクションを修正するための迅速な応答を得ることができます。ただし、サーバーに戻ると、ブラウザーがデータを実際に検証することに依存することはできません。ブラウザーは制御できないためです。意図的または偶然に破損し、意図したとおりに検証を行わない可能性があります。したがって、整合性を確保するために、サーバー上のすべてを再検証する必要があります。
うまくいけば、あなたのサイトには、ユーザーが他の人の注文を編集しようとする方法すらありません。ただし、まだ試すことができる場合は、そのロジックをモデルまたはコントローラーのいずれかに配置できます。それは意見の問題です。コントローラーはアクセス チェックなどを行うべきであり、モデルはそれ自体を変更する方法しか知らないと言う人もいます。他の人は「ファット モデル、スキニー コントローラ」と言い、セキュリティ チェックはコントローラ間で再利用できる必要があるため、モデルに含める必要があると言うでしょう。君に電話だ。