2009-08-14 7 views
0

Je voulais cacher une logique métier et rendre les variables inaccessibles. Peut-être que je manque quelque chose, mais si quelqu'un peut lire le javascript, ils peuvent également ajouter leur propre et lire mes variables. Y a-t-il un moyen de cacher ce genre de choses?Méthode pour 'compiler' javascript pour cacher la source pendant l'exécution de la page?

+0

Vous parlez de rendre "variables inaccessibles", je suppose que vous voulez dire quelque chose comme FireBug ou d'autres consoles JS (ou Greasemonkey). Notez que même si vous utilisez un obfuscateur JS, il serait encore trivial de modifier les variables ou d'injecter des scripts dans la page. – user120242

+0

Comme je le dis toujours si cela pouvait être fait, pensez-vous que vous seriez capable de voir le code source de Gmail, Hotmail, Yahoo, votre banque, etc? Si le code doit être sécurisé, écrivez un autre type d'application. – epascarello

Répondre

2

C'est l'un des inconvénients de l'utilisation d'un langage de script - si vous ne diffusez pas la source, personne ne peut exécuter vos scripts!

Vous pouvez exécuter vos JS par un obfuscator premier, mais si quelqu'un veut vraiment comprendre exactement ce que fait votre code, il ne sera pas que beaucoup de travail à l'ingénierie inverse, d'autant plus que les effets du code sont directement observables en premier lieu.

+0

cette première phrase prend le gâteau – BigOmega

0

Vous devez toujours valider les données que vous renvoyez. J'ai passé un moment plutôt divertissant à jouer des blagues sur un forum dont je suis un mod en manipulant les pages avec la barre d'outils du développeur Web. Toujours supposer que les données arrivant sur le serveur ont été intentionnellement manipulées. Ce n'est qu'après avoir prouvé que cela n'a pas été fait (ou vérifié que l'utilisateur a la permission d'agir) que vous gérez la demande.

1

Javascript ne peut pas être compilé, c'est-à-dire, c'est toujours Javascript.

Mais, il y a ceci: http://dean.edwards.name/packer/

En général, cela permet de réduire l'empreinte de code du Javascript, si dire votre script est en cours de téléchargement des milliers de fois par minute. Il existe d'autres méthodes pour y parvenir, mais pour cacher le code, ce genre de travail.

Accordé, le code peut être décompressé. Cela permettra de garder un novice, mais toute personne qui est déterminée à lire votre code source trouvera un moyen.

Il en est de même avec les langages compilés, même lorsqu'ils ont été obscurcis. Il est impossible de cacher votre code 100% du temps - s'il s'exécute sur votre machine, il peut être lu par un pirate déterminé.

+0

En fait, si vous le faites comme une extension FF ..... –

3

Tout code qui s'exécute sur une machine client est disponible pour le client. Certaines formes de code sont plus difficile pour y accéder, mais si quelqu'un veut vraiment savoir ce qui se passe, il n'y a aucun moyen de les arrêter.

Si vous ne voulez pas que quelqu'un découvre quel code est en cours d'exécution, faites-le sur un serveur. Période.

Questions connexes