javascript - 获取 javascript 文件中存在的令牌
问题描述
我正在编写一些我们希望在某些时候进行逆向工程的客户端 JavaScript 代码。我想要一种我们可以合理肯定地说我们没有公开任何调试信息的方式。我们通过 uglify 运行代码,所以它混淆了变量名。
我的想法是从文件中获取所有字符串文字(和令牌?)并使用开玩笑的快照匹配它们,但我找不到可以从 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 规则,但这将是一个非常复杂的规则。
解决方案
代码审查。这样,如果您查看任何和所有签入源代码的代码,您就会知道是否有调试信息试图潜入您的存储库。除此之外,您还可以在部署之前进行关键字搜索,以及“alert”、“debug”和其他调试 JavaScript 关键字。
推荐阅读
- java - Spring Boot 的 JPA Native Query 中未设置参数
- python - PyQt5 无法添加标签以从线程滚动区域
- ansible - Ansible - 在角色剧本中使用条件
- python - 过滤计算字段的 Django 查询,在字符串中搜索字符
- automation - Taurus 等效“连续运行线程组”
- babeljs - 我可以创建自己的 npm 包脚本来定位我的 NEXT.js 项目的文件吗?
- jsdom - 有没有一种方法可以解析字符串并将 querySelector 与 corvid wix 一起使用?
- python - 问题:Glib-Gobject-warning **:无法注册现有类型“GDKDisplayManager”
- windows - powershell中Winform透明背景
- c# - 我们如何将 \\u003C\\u003F\\ 这种格式的 unicode 字符转换为普通的 html 文本