在最近的 JMP 峰会上,我向开发人员询问如何隐藏包含数据库凭据的变量。 我目前的解决方案已经完成了 80%。 我在加密脚本的变量中设置凭据,然后 Include() 该脚本并在连接到数据库的脚本中使用该变量。 任何打开主脚本的人都可以通过转到日志文件并查找变量来查看凭据。 JSL 开发人员在峰会上很受欢迎,而我采访过的其他人则不确定如何隐藏变量。
然后我看到了这个:加密和全局变量 (jmp.com)
如果你只是在变量前添加两个下划线,它就会隐藏它们......几乎。 如果尝试显示 (__myVar)、打印 (__myVar) 或写入 (__myVar),结果将为空白。 伟大的! 但后来我发现如果你直接在日志中输入 __myVar ,日志就会为你定义它。 这实际上是显示变量的最简单方法之一......
看起来像是一个无意的漏洞。 双下划线会停止所有这些脚本方法,如果将鼠标悬停在脚本中的变量名称上,它将不会显示内容。 但是有一种非常明显的方法可以通过直接输入变量来显示内容。
我有充分的理由不想加密主脚本,而只想加密连接字符串。 不确定这是否是愿望清单项目或者我是否遗漏了某些东西。