Lors du récent sommet JMP, j'ai demandé aux développeurs comment masquer une variable contenant les informations d'identification d'une base de données. Ma solution actuelle est à 80% du chemin. Je définis les informations d'identification dans une variable dans un script chiffré, puis j'inclus () ce script et j'utilise la variable dans un script qui se connecte à la base de données. Quiconque ouvre le script principal peut voir les informations d'identification en accédant au fichier journal et en recherchant la variable. Les développeurs JSL étaient très demandés lors du Sommet et les autres personnes à qui j'ai parlé ne savaient pas comment cacher une variable.
Puis j'ai vu ça : Chiffrement et variables globales (jmp.com)
Si vous mettez simplement deux traits de soulignement avant une variable, cela les masquera... presque. Si vous essayez Show ( __myVar), Print ( __myVar) ou Write ( __myVar), le résultat sera vide. Super! Mais j'ai découvert que si vous tapez simplement __myVar directement dans le journal, celui-ci le définit pour vous. C'est en fait l'un des moyens les plus simples d'afficher la variable...
Cela ressemble à une faille involontaire. Le double trait de soulignement arrête toutes ces méthodes de script et si vous survolez le nom de la variable dans le script, le contenu n'apparaîtra pas. Mais il existe une manière très évidente d'afficher le contenu simplement en entrant directement la variable.
J'ai de bonnes raisons de ne pas vouloir chiffrer le script principal, uniquement la chaîne de connexion. Je ne sais pas s'il s'agit d'un article de la liste de souhaits ou s'il me manque quelque chose.