Est-il possible de masquer le code Javascript du html d'une page Web, lorsque le code source est visualisé via la fonction Afficher la source du navigateur?
Je sais qu'il est possible d'obscurcir le code, mais je préférerais qu'il soit caché de la fonction de source de vue.
javascript
browser
hide
obfuscation
arun nair
la source
la source
Réponses:
Je ne suis pas sûr que quelqu'un d'autre ait répondu directement à votre question, à savoir le code affiché à partir de la commande Afficher la source du navigateur.
Comme d'autres l'ont dit, il n'y a aucun moyen de protéger le javascript destiné à s'exécuter dans un navigateur à partir d'un spectateur déterminé. Si le navigateur peut l'exécuter, toute personne déterminée peut également le visualiser / l'exécuter.
Mais, si vous mettez votre javascript dans un fichier javascript externe qui est inclus avec:
<script type="text/javascript" src="http://mydomain.com/xxxx.js"></script>
balises, alors le code javascript ne sera pas immédiatement visible avec la commande Afficher la source - seule la balise de script elle-même sera visible de cette façon. Cela ne signifie pas que quelqu'un ne peut pas simplement charger ce fichier javascript externe pour le voir, mais vous avez demandé comment le garder hors de la commande Afficher la source du navigateur et cela le fera.
Si vous vouliez vraiment améliorer l'affichage de la source, vous feriez tout ce qui suit:
Cela dit, je pense que vous devriez vous concentrer sur les performances, la fiabilité et rendre votre application géniale. Si vous devez absolument protéger un algorithme, placez-le sur le serveur, mais à part cela, rivaliser pour être le meilleur de vous, pas en ayant des secrets. C'est finalement ainsi que fonctionne le succès sur le Web de toute façon.
la source
<script>
permettrait de mieux le garder hors de la vue source (toujours visible sous le DOM en direct) - c'est-à-dire qu'il ne peut pas être simplement "cliqué avec le bouton droit de la souris" dans la vue source. Il est possible que ledit<script>
élément soit supprimé une fois que le JavaScript est exécuté, ce qui rend légèrement plus fastidieux (mais pas impossible) l'obtention du code d'origine ... bien sûr, le trafic net apparaîtra très facilement dans Firebug ou similaire ;-)Non, ce n'est pas possible.
Si vous ne le donnez pas au navigateur, alors le navigateur ne l'a pas.
Si vous le faites, alors il (ou une référence facile à suivre) fait partie de la source.
la source
Ma solution est inspirée du dernier commentaire. C'est le code de invisible.html
Le code clair de invisible_debut.js est:
Notez qu'à la fin, je supprime le script créé. invisible.js est:
invisible.js n'apparaît pas dans la console, car il a été supprimé et jamais dans le code source car créé par javascript.
Concernant invisible_debut.js, je l'ai obscurci, ce qui signifie qu'il est très compliqué de trouver l'url de invisible.js. Pas parfait, mais assez dur pour un hacker normal.
la source
invisible.js
dans les sources. Version Chrome 34.0.1847.131 mUtiliser le crypteur Html La partie de la tête qui a
HTML ENCRYPTER Remarque: si vous avez un script java dans votre page, essayez d'exporter vers un fichier .js et de le faire comme dans l'exemple ci-dessus.
Et aussi cet Encrypter ne fonctionne pas toujours dans un code qui rendra votre site Web foiré ... Sélectionnez la meilleure partie que vous voulez cacher comme par exemple dans
<form> </form>
Cela peut être inversé par un utilisateur avancé, mais tous les noob comme moi ne le savent pas.
J'espère que cela aidera
la source
Je ne suis pas sûr qu'il existe un moyen de cacher ces informations. Peu importe ce que vous faites pour masquer ou masquer tout ce que vous faites en JavaScript, cela revient toujours au fait que votre navigateur doit le charger pour pouvoir l'utiliser. Les navigateurs modernes disposent d'outils de débogage / d'analyse Web prêts à l'emploi qui facilitent l'extraction et l'affichage des scripts (il suffit d'appuyer surF12 sur Chrome, par exemple).
Si vous craignez d'exposer une sorte de secret commercial ou d'algorithme, votre seul recours est d'encapsuler cette logique dans un appel de service Web et de demander à votre page d'invoquer cette fonctionnalité via AJAX.
la source
'N'est pas possible!'
Oh oui ça l'est ....
la source
Je pense avoir trouvé une solution pour masquer certains codes JavaScript dans la vue source du navigateur. Mais vous devez utiliser jQuery pour ce faire.
Par exemple:
Dans votre index.php
Vous chargez un fichier dans le corps html / php appelé par une fonction jquery dans le fichier js.js.
js.js
Voici le truc.
Dans votre fichier content.php, mettez une autre balise head puis appelez un autre fichier js à partir de là.
content.php
dans le fichier js2.js, créez la fonction de votre choix.
exemple:
js2.js
content2.php
Veuillez suivre le lien puis copier-coller dans le nom de fichier jquery.js
http://dl.dropbox.com/u/36557803/jquery.js
J'espère que ça aide.
la source
Vous pourriez utiliser
document.write
.Sans jQuery
Ou avec jQuery
la source
N'est pas possible!
Le seul moyen est de masquer javascript ou de réduire votre javascript, ce qui rend difficile le reverse engineering pour l'utilisateur final. Cependant, il n'est pas impossible de faire de l'ingénierie inverse.
la source
Approche que j'ai utilisée il y a quelques années -
Nous avons besoin d'un fichier jsp, d'un fichier java servlet et d'un fichier java de filtre.
Donner accès au fichier jsp à l'utilisateur. URL du type d'utilisateur du fichier jsp.
Cas 1 -
En utilisant Printwriter, il rendra la réponse à l'utilisateur.
Pendant ce temps, Servlet créera un fichier clé.
Lorsque le servlet essaiera d'exécuter le fichier xxxx.js qu'il contient, le filtre
s'activera et détectera l'existence d'un
fichier clé et supprimera donc le fichier clé .
Ainsi, un cycle est terminé.
En bref, le fichier clé sera créé par le serveur et sera immédiatement supprimé par le filtre.
Cela se produira à chaque coup.
Cas 2 -
Au lieu de créer un fichier, on peut utiliser la valeur de réglage dans la variable de session.
la source