1

環境

AngularJS を使用し、REST API をバックエンドとして使用して、単一ページの Web アプリを構築しています。

rest バックエンドには次のサービスがあります (簡略化):

  • /accounts/:id -- アカウントを管理します
  • /transactions/:id -- アカウントに関連するトランザクションを管理します
  • /sms/:id -- SMS の送信と送信済み SMS のリストを管理します

問題

当座預金残高へのSMS送信を調整したいときに問題が発生します。

REST の哲学を維持しながら、口座残高の検証を実装する方法は?

代替ソリューション

私の見方では、2つの選択肢があります。

  • サーバー側: SMS ルートは、SMS 送信要求 (POST /sms) のアカウントと残高のチェックを処理します
  • クライアント側: コントローラーは最初にアカウントの残高を要求し、残高がある場合にのみ SMS ルートを呼び出します。

サーバー側の長所と短所:

  • 長所: 口座残高のチェックは Web アプリに対して透過的です。クライアント側で口座残高の検証がないということは、ハッキングの可能性がないことを意味します (?)
  • 短所: SMS ルートが残高チェックにも関与することを意味します。

クライアント側の長所と短所:

  • 長所: REST API を直交に保つ
  • 短所: 検証ロジックをクライアントに移動すると、ハッキングされやすくなります

何かご意見は?

4

1 に答える 1

0

データの価値/機密性は? 経験則として、データを保護するためにクライアントを信頼しないでください。クライアント側で実行する検証に加えて、保護する価値のあるものはすべてサーバー側で検証する必要があります。両方に問題はなく、クライアントとサーバーの両方で検証するという一般的な慣行により、ドメインを保護しながらユーザーにリッチなエクスペリエンスを提供します.

幸運を、

マット

于 2012-09-05T16:06:50.680 に答える