web-dev-qa-db-fra.com

Comment masquer les codes sources d'Angularjs?

Comment masquer les fichiers ou le code app.js, controller.js?

Ils sont visibles dans la source html. Est-il possible de les cacher?

13
OMahoooo
  1. minimiser
  2. uglify avec minify vous devez uglifier votre code, ce qui le rend difficile à comprendre, il renommera les variables et fonctionnera de manière très moche, pas facile de casser le code.
    Vous pouvez également bien le chiffrer, vous devez et devez le déchiffrer quand il est nécessaire de l'utiliser, et cela ne peut pas être caché aux outils frontaux
4
Ankit Balyan

Cela ne peut pas être fait.

Mais vous pouvez utiliser des outils pour minimiser les sources. Voir Google Clousure et ng-min pour angular.js

Je vous recommande d'utiliser grunt pour créer un seul fichier js pour votre application, avec tout votre code minimisé. Jetez un oeil à ces projets qui peuvent être utiles: ng-passe-partout et yeoman - angularjs

15
Deividi Cavarzan

Vous ne pouvez pas masquer les angualrjs. Son basé sur Javascript. Pour minifier, cela n'aide pas car n'importe qui peut le reconvertir en vue lisible par l'homme (bien sûr, si quelqu'un veut voler votre code). Tout logique sensible essayez de mettre du côté serveur.

J'espère que ça va hep,

10
Maxim Shoustin

Vous pouvez masquer votre code javascript en utilisant la sous-requête du serveur NGINX .

Si tu as /admin route dans angular, backbone ou autre framework js et vous voulez le cacher pour les utilisateurs non autorisés, vous pouvez faire une sous-requête dans NGINX au backend, qui vérifie si l'utilisateur est autorisé. Sinon, vous lancez 404 ou redirigez vers la page d'accueil.

Il s'agit du module nginx qui contient plus de détails: http://nginx.org/en/docs/http/ngx_http_auth_request_module.html

Le code dans NGINX ressemble plus ou moins à ceci:

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

Il s'agit du comportement naturel d'un framework frontal; vous ne cachez pas le code source. Votre front-end ne doit contenir aucune donnée sensible, en particulier aucun mot de passe. Tout comme Stack Overflow, tout le code de fin de police est et sera toujours visible pour l'utilisateur.

3
subZero