web-dev-qa-db-ja.com

Angularjsソースコードを非表示にする方法

App.js、controller.jsファイルまたはコードを非表示にする方法は?

それらはhtmlソースに表示されます。とにかくそれらを隠す方法はありますか?

13
OMahoooo
  1. 縮小する
  2. uglifyはminifyと一緒にコードをuglifyする必要があります。これにより、理解が困難になり、変数と関数の名前が非常に醜くなり、コードを簡単に破ることができなくなります。
    また、それをうまく暗号化することができ、使用する必要があるときに解読する必要があり、それをフロントエンドツールから非表示にしておくことはできません。
4
Ankit Balyan

これはできません。

ただし、ソースを縮小するためのツールを使用できます。 angular.jsについては Google Clousure および ng-min を参照してください

Gruntを使用して、アプリケーション用の単一のjsファイルを作成し、すべてのコードを縮小することをお勧めします。役に立つかもしれないプロジェクトを見てみましょう: ng-boilerplate および yeoman-angularjs

15

Angualrjsを非表示にすることはできません。 Javascriptに基づいています。縮小するには、誰もがそれを人間が読める形式に戻すことができるため、役に立ちません(誰かがあなたのコードを盗もうとするかどうかを確認してください)。 Any sensitive logicサーバー側に配置しようとします。

それが治まることを願って、

10
Maxim Shoustin

NGINXサーバーsubrequestを使用してJavaScriptコードを非表示にできます。

あなたが持っている場合 /admin angular、backbone、またはその他のjsフレームワークのルートで、権限のないユーザーに対してそれを非表示にしたい場合は、NGINXでサブリクエストを送信して、ユーザーが承認されているかどうかを確認できます。そうでない場合は、404をスローするか、ホームページにリダイレクトします。

これは、詳細を含むnginxモジュールです http://nginx.org/en/docs/http/ngx_http_auth_request_module.html

NGINXのコードは多かれ少なかれこのように見えます:

location ^~ /admin {
    # checking in background if user is privileged
    auth_request /auth;
    root   /var/www/angular-client/;
}

location = /auth {
    proxy_pass http://backend.cms/api/v1/users/admin.json;
    proxy_set_header X-Original-URI http://backend.cms/api/v1/users/admin.json;/
}
4
user659682

これは、フロントエンドフレームワークの自然な動作です。あなたはソースコードを隠しません。フロントエンドには機密データ、特にパスワードを一切含めないでください。 Stack Overflowと同様に、すべてのフォント終了コードはユーザーに常に表示されます。

3
subZero