2013-08-22 12 views
7

私は(ここでは提案を開いて)次のスタック単一ページアプリケーションでAngularを使用するセキュリティとローカライズ?

  • 角度
  • を使用して作成する単一ページのアプリケーションを調査していますjQueryの
  • ASP.Net MVC 4
  • Entity Frameworkの5

私はこのスタックと角にかなり売られていますが、確信していることがいくつかあります。ユーザーによって異なる役割があるため、役割に応じて特定のページやコントロールをページ上に表示/非表示する必要があります。私はより伝統的なWebアプリケーションのためのいくつかのソリューションに精通していますが、私はそれが単一のページアプリケーションになるとどこから始めるのか分かりません。

私は、MVCの部分的なビューを使用しないで、WebApiのようにサーバーコードを送信して処理することを望んでいました。しかし、角度はすべてのテンプレートを処理する必要があります。つまり、誰かがフロントエンドのテンプレートにアクセスし、必要ではない関数を呼び出すことができるかもしれません。 WebAPIのメソッドの役割を確認し、それらが適切な役割を果たすことを確認する必要がありますか?

次の問題はローカリゼーションです。複数の言語をサポートする必要があります。私はen_gb.XMLという異なる言語のファイルを持つことができ、それにキーとそのさまざまな翻訳が含まれることを期待していました。ユーザーは、私は多分ちょうど角度で何かを変更することができるだろう言語を変更した場合、おそらく値

angular.value("language", 'en_gb.js'); 

または

angular.value("language", 'en_gb.xml'); 

を使用すると、他の誰がこれらの種類の問題を解決しました。

答えて

4

ここではセキュリティに関することをお手伝いします。ユーザーロールに基づいて要素を非表示にするカスタムロジックをカスタム実装する必要があります。クライアントにユーザー役割情報を渡すことができる限り、show \ hideロジックを実装できます。 このshow \ hideロジックはサーバーによって駆動される必要があります。そうしなければ、誰でもクライアント側のデータを変更して機能にアクセスできます。

これを達成する1つの方法は、レンダリングのためにサーバ側のテンプレート(部分的なビュー)をクライアントに返すことです(サーバーテンプレートのロードをサポートするng-includeおよびng-view)。サーバーは、ユーザーがアクセス権を持っているかどうかを検証し、失敗した場合に空の応答を戻すことができます。したがって、情報漏洩の可能性はありません。

webapiのすべての呼び出しに対して同様のチェックを追加して、権限のないステータスコードをエンドユーザーに返すことができます。

5

セキュリティAngularJSはフル機能のフロントエンドフレームワークであるため、ビュー内のすべてのものをテンプレート、部分表示などのように制御する必要があります。これはフロントエンドフレームワークだけなので、サーバーデータの責任を負いませんので、データを取得/保存/更新/削除するRESTful呼び出しをしてください。また、セキュリティの責任もないので、WebApiと呼ばれるものをサーバー側で100%保証する必要があります。だから誰かが彼が何をすることが許可されていないかを理解することができても、その信任状はサーバ側でチェックされるので、コールは成功しません。 AngularJSに答えがある悪意のある可能性のある攻撃がまだあります。 http://docs.angularjs.org/api/ngの「セキュリティに関する考慮事項」セクションを参照してください。

ローカライゼーション:AngularJSは、通貨、日付、および番号のローカリゼーションをサポートしています。しかし、あなたのUIの文字列の場合、まだラングには何も組み込まれていません。あなたは自分の答えをつくる必要があります。以下のように、AngularJSの翻訳を達成するためのいくつかの試みがあります。https://github.com/firehist/grunt-angular-translate

+0

ありがとうございました。それで、あなたはそのセキュリティの部分についての私の考えを確認しました。 WebApiの役割をチェックするだけです。言語のために私は自分のロールを試してみると思います。たぶん、工場やいくつかのテンプレートを使って、おそらく私はそれを正しく得ることができます。リンクありがとう。今それを見るだろう。 – uriDium

関連する問題