"Afficher la source" Telle est l'option que le programmeur Javascript et VBScript redoute tellement. Et il y a de quoi vu qu'il est strictement impossible de dissimuler son code puisque que c'est le navigateur client qui devra l'executer. Et pourtant...
ATTENTION,
CETTE SOLUTION N'EST VALIDE QUE POUR INTERNET EXPLORER
JavaScript et JScript
Le JavaScript est un langage de script introduit par Netscape, qui en détient les droits. C'est pour cette raison que les nouvelles versions du navigateur Netscape ont, dans la maîtrise du JavaScript, toujours de l'avance sur la concurrence qui ne peut qu'attendre ce que Netscape y a ajouté comme nouveautés.
L'Explorer Internet MS 4.x (et ulterieurs) interprète bien JavaScript, mais Microsoft à tenu à apporter sa touche personnelle afin de mettre à disposition des commandes spéciales pour les extensions de l'Explorer Internet MS au système d'exploitation. Ainsi est né le JScript qui n'est donc qu'une variante de langage du JavaScript. Ce qui explique donc l'extrême similarité entre les deux langages.
Encodage Microsoft
Pourquoi je vous harcèle avec ces définitions ? Tout simplement parce-que la solution que je vous propose n'est utilisable que pour le JScript (et donc que pour Internet Explorer) et pour le VBScript. Cependant, si vous developpez une appli web en JavaScript destiné uniquement à IE, rien ne vous empêche de changer votre borne script language="JavaScript" en script language="JScript".
L'astuce consiste à utiliser en crypteur fait "à la rache" par Microsoft, pour transformer vos scripts JScript et VBScript en une infâme masse diforme de données. Internet Explorer contient l'algorythme de décryptgae qui lui permettra de comprendre ce block comme si c'était du JScript ou du VBScript normal.
ATTENTION !!! Cette encodage est extrêment
simple à déchiffrer !!!
En effet, Microsoft s'est contenté d'utiliser
un alogrithme relativement simple à déchiffrer, ce qui implique
donc que votre code n'est pas vraiment protégé. Disons qu'il
peut juste servir à mettre des batons dans les roues de ceux qui veulent
regarder votre code.
Ne mettez pas de données sensibles dans
votre code !
Un programmeur un minimum experimenté devrait assez facilement s'emparer
d'un décodeur.
Ceci dit, il reste quand même un outil plus efficace que l'interception désespéré du clique droit et de la suppression de la barre d'outil.
A 10 ans je trouvais ça marrant le DOS mais maintenant y en a raz le bol de se payer des lignes de commandes de 10m de long. Alors je vous ai pondu un petit executable tout simple qui fait tout tout seul avec des vrais boîtes de dialogues pour choisir vos fichiers :)
Jinx's Encoder
Ca sert à quoi ?
Ce programme vous permer de choisir plusieurs fichiers contenant des scripts JScript et/ou VBScript et de les encoder afin de les rendre totalement illisibles à vos visiteurs sans les rendre osolètes. Le programme encode et enregistre les fichiers encodés dans le répertoire que vous avez spécifié.
Cet executable n'est absolument pas un logociel complet et est composé du strict minimum ! Il n'y a donc pas de gestion des erreurs en cas de fausses manipulations de votre part. Cependant il a été testé et fonctionne parfaitement sous réserve que l'on respecte le mode de fonctionnement.
Comment ca marche ?
Avant tout, une chose importante à retenir, c'est que ce logiciel utilise l'executable original de microsoft qui devait être lancé sous DOS. Celà implique que si vous utilisez des adresses pour vos fichiers contenant des noms de dossier ayant plus de 8 caractères, ou des caracrtères speciaux, le programme de fonctionnera pas.
Avant de lancer le programme, vous devez spécifier dans votre page web, l'endroit à partir duquel vous voulez commencer à encoder. Pour celà il vous suffite de placer un commentaire bien spécifique :
<SCRIPT LANGUAGE="JScript">
// Votre code à ne pas encoder
//**Start Encode**
// Votre code à encoder
</SCRIPT>
<SCRIPT LANGUAGE="VBScript">
' Votre code à ne pas encoder
'**Start Encode**
' Votre code à encoder
</SCRIPT>
Attention cepandant, l'encodeur a violament tendance à confondre VBScript client et ASP et donc, il crypte tout. Essayez donc de bien spéparer tout ça comme il se doit, sois en placant les scripts ASP avant la borne, sois en utilisant des includes, ou en encodant dans un autre fichier en faisant par la suite un copier /coller... Faites attention aussi au piège : les scripts contenant de l'ASP ou du PHP ! L'encodeur ne connait pas ces langages et les encode comme si c'était du JScript ou du VBScript client, donc votre ASP/PHP ne fonctionnera pas et votre script client ne comprendra pas ce qu'est ce ou ce en plein milieu du code.
Vos pages sont fin prêtes à être encodées. Lancez le petit executable, et choisissez les fichiers que vous voulez encoder. Lorsque votre liste est faite, choisissez un répertoire de destination (attention à vos adresses !!!) ou seront enregistrés les fichiers cryptés. Si vos adresses ne contiennent pas de merdouilles pour le DOS, vous devriez retrouver vos nouveaux fichiers dans le répertoire spécifié avec vos scripts encodés. Si tout vas biens, vos bornes auront changées comme ceci :
<SCRIPT LANGUAGE="Jscript.Encode">
<SCRIPT LANGUAGE="VBScript.Encode">
Voilà, vous pouvez lancer votre Internet Explorer qui devrait pouvoir lire votre page et executer les scripts sans problème malgrès tout.
J'ai inclus dans le zip, l'executable d'origine avec son mode d'emploi, qui peut vous permettre, si vous en avez besoin, d'utiliser cette fonction avec des options.