获取javascript文件中存在的令牌

获取javascript文件中存在的令牌,javascript,Javascript,我正在编写一些客户端javascript代码,我们希望在某个时候对其进行反向工程。我想要一种方式,我们可以合理地确定我们没有公开任何调试信息。我们正在通过uglify运行代码,因此它混淆了变量名 我的想法是获取所有字符串文本和标记?使用jest快照来匹配它们,但我找不到从JS文件中提取信息的工具。有人有这样做的经验吗 更新: 我想我举个例子会有帮助 假设有人编写了以下代码: function processSensitiveData () { console.log('processing

我正在编写一些客户端javascript代码,我们希望在某个时候对其进行反向工程。我想要一种方式,我们可以合理地确定我们没有公开任何调试信息。我们正在通过uglify运行代码,因此它混淆了变量名

我的想法是获取所有字符串文本和标记?使用jest快照来匹配它们,但我找不到从JS文件中提取信息的工具。有人有这样做的经验吗

更新: 我想我举个例子会有帮助

假设有人编写了以下代码:

function processSensitiveData () {
  console.log('processing sensitive data')
  doMoreThings();
}

processSensitiveData();
function processData (dataType) {
  console.log('processing ' + dataType + ' data');
  doMoreThings();
}

processData('sensitive');
这并没有什么错,因为我们在生产环境中剥离了console.log语句,并且uglify转换了函数名,所以不存在敏感信息。假设有人将其修改为以下代码:

function processSensitiveData () {
  console.log('processing sensitive data')
  doMoreThings();
}

processSensitiveData();
function processData (dataType) {
  console.log('processing ' + dataType + ' data');
  doMoreThings();
}

processData('sensitive');

现在,虽然console.log语句被剥离,但“sensitive”仍将出现在最终输出中。这是我们想要避免的事情。虽然代码审查是第一道防线,但在代码审查中很可能会遗漏这一点,尤其是在与其他更改结合使用时。我想让计算机来做这件事,因为计算机比人类做得好得多。理想情况下,这将是一个linting规则,但这将是一个非常复杂的编写规则。

代码审查。通过这种方式,如果您查看签入源代码的任何和所有代码,您将知道是否有调试信息试图潜入您的repo。除此之外,您还可以在部署前搜索关键字,搜索“警报”、“调试”和其他调试JavaScript关键字。

您不能在客户端隐藏信息。这不是要隐藏信息,而是要确保它在生产中不首先出现。这不仅仅是为了确保某人没有进行oops,而是留下了一些不必要的东西,可能是潜在攻击者的线索。当你从服务器获取信息时,也会发生同样的情况。。。您必须找到其他方法来确保没有不应该公开的代码是公开的