2

バックグラウンド

既存の JavaScript アプリケーション (1 ページ アプリ) を extjs に移行する必要があります。アプリケーションの表示と動作は、ユーザーの権限に依存します。

現在のデザイン

アプリケーションは、権限が付与される機能セットを表すプラグインに分割されます。これらのプラグインはそれぞれ、単一の JavaScript ファイルで構成されています。ユーザーは、1 つ以上のプラグインに対するアクセス許可を持つことができます。権限に応じて、これらのファイルはページの先頭にロードされます。これらの各プラグインは、そのエントリをメイン メニューに追加し、アプリケーションの駆動に使用されるメソッドを公開します。
アクセス許可は mysql データベースに保存されます。

ExtJs のデフォルト設計

ExtJs では、ソース ファイルにそれぞれのクラスが含まれています。ビルド プロセス中に、すべての .js ファイルが連結されて、すべてを含む 1 つの大きな .js ファイルが生成されます。

最適な設計アプローチは何でしょうか?

  1. でカスタム コンパイルを使用することを検討しsencha cmd、その方法でプラグインごとに .js ファイルを作成しました。次に、これらのプラグインを今と同じ方法でロードできました。ただし、これにより、ビルドと展開のプロセスが複雑になります。
  2. また、標準の Ext ビルド プロセスで .js ファイルを 1 つだけ作成することも考えました。次に、メニューを構築するために、ajax を介してサーバーからアクセス許可を読み込みます。すべてのオブジェクトとメソッドが存在しますが、ユーザーがアクセス許可を持っている場合にのみアクセスできます。

私の意見では、2 番目のアプローチは保守がはるかに簡単ですが、セキュリティ上の問題があるように見えます。なぜなら、誰もがソースを見て、サーバー上で公開され、ajax によって消費されるデータ インターフェイスについて知ることができるからです。

コメント、アイデア、アドバイスは大歓迎です。ありがとう !

4

1 に答える 1

2

2番目は行く方法です。サーバー側のアクセス許可をチェックしている場合 (データの更新中など)、アクセス許可に基づいてメニュー項目を表示/非表示にする ExtJS のみが必要です。そうすれば、悪意のあるユーザーは特定のプラグイン/アイテムをオンまたはオフにすることができますが、通常よりも多くの権限を必要とするものを実行することはできません.

于 2013-10-03T14:17:17.737 に答える