0

Web アプリには常にサーバー サイド テンプレート ( .JSP ) を使用してきましたが、現在は大きなプロジェクトに Angular を使用しています。クライアント側のテンプレートを使用することは理にかなっていますが、いくつかのセキュリティ上の問題が発生しています...

ログインしている場合にのみ表示される特定のテンプレートにユーザーがアクセスできないようにすることはできますか? 開発者ツールまたはfirebugを使用してハッキングするのは簡単なようです..

これを制御する方法は、サーバーからビューを返すことですが、 Angular からすべての機能を失うことはありませんか?

4

3 に答える 3

1

誰かが十分に狡猾であると仮定すると、テンプレート自体が見られるのを防ぐのは難しいかもしれません. メインのログイン ページをロードすると、サーバーが完全な Angular Javascript シングルページ アプリケーションを提供すると想定しています。狡猾な人は、ロードされた Javascript を調べてルートを特定し、明示的な呼び出しを行ってこれらのテンプレートを Angular アプリの外部にダウンロードすることができます。ほとんどの Angular アプリは、テンプレートをパブリックにアクセスできるようにしているだけだと思います。その場合、誰かが知る必要があるのは、テンプレート名だけです。

少し恐ろしく聞こえるかもしれませんが、良いことは、テンプレートに入力されるデータをより簡単に保護できることです。サーバー上で実行されているサービスからデータを取得している場合は、データを提供する前に、ユーザーが実際にログインしていること (および適切な役割を持っていること) を確認できます。

これは、狡猾な人が空のテンプレートを取得するのはおそらく簡単であることを意味しますが、サーバーでセキュリティが適切に行われている場合、そのテンプレートにデータを入力するためのデータを取得することは難しいはずです.

このページには、AngularJS アプリにセキュリティを適用する方法の良い例がいくつかあります: http://frederiknakstad.com/authentication-in-single-page-applications-with-angular-js/

于 2013-08-19T14:37:39.597 に答える