我正在撰写一些客户端javascript代码,我们希望在某些时候进行逆向工程。我想要一种方式,我们可以合理地确定我们不会暴露任何调试信息。我们通过uglify运行代码,因此它会混淆变量名称。
我的想法是从文件中获取所有字符串文字(和标记?)并使用jest快照匹配它们,但我找不到一个可以从JS文件中提取信息的工具。有没有人有这方面的经验?
更新: 我认为如果我举一个例子会有所帮助
假设有人要编写此代码:
function processSensitiveData () {
console.log('processing sensitive data')
doMoreThings();
}
processSensitiveData();
这没有任何问题,因为我们在生产中删除了console.log语句,而uglify转换了函数名,因此不存在敏感信息。假设有人要将其修改为此代码:
function processData (dataType) {
console.log('processing ' + dataType + ' data');
doMoreThings();
}
processData('sensitive');
现在,当console.log语句被删除时,敏感'仍然会在最终输出中。这是我们想要避免的事情。虽然代码审查是第一道防线,但在代码审查中很可能会错过,特别是如果与其他更改结合使用。我想让计算机做到这一点,因为这是计算机比人类做得更好的东西。理想情况下,这将是一个linting规则,但这将是一个非常复杂的规则。
答案 0 :(得分:0)
代码评论。这样,如果您查看已检入源的任何和所有代码,您将知道是否存在试图潜入您的仓库的调试信息。除此之外,您还可以在部署之前进行关键字搜索以及“警报”,“调试”和其他调试JavaScript关键字。