获取javascript文件中存在的令牌

时间:2018-05-07 16:14:45

标签: javascript

我正在撰写一些客户端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规则,但这将是一个非常复杂的规则。

1 个答案:

答案 0 :(得分:0)

代码评论。这样,如果您查看已检入源的任何和所有代码,您将知道是否存在试图潜入您的仓库的调试信息。除此之外,您还可以在部署之前进行关键字搜索以及“警报”,“调试”和其他调试JavaScript关键字。