在PHP中使用source-map反混淆JavaScript

4
我们在生产中有一个JavaScript页面,可以捕获任何异常并将其记录到我们的数据库中。这段时间一直很好用,但现在我们使用uglifyjs来混淆代码,这也混淆了堆栈跟踪。
我知道Firefox和Chrome可以反混淆,但这对我们没有帮助,因为我们想要反混淆在生产中发生的异常。
我们有source-map,所以我想做的是让我们的后端(PHP)接收异常并在将其记录到数据库之前使用源映射进行反混淆。
我知道Mozilla Source-map项目可以为node.js做到这一点,但是否有一种方法可以在PHP中实现?

也许你可以在 PHP 中执行 nodejs 命令。 - huwence
是的,@huwence那是一个选项,但如果可能的话,我想用PHP来实现。 - Eystein Bye
1个回答

3

1
建议使用igbinary/<插入可序列化格式>将getMappings()的结果缓存到文件中,这将大大降低反混淆所需的时间。 - norrs
对于未来通过谷歌搜索此问题的读者,请注意,您不需要按行/列查询此库以解决错误;相反,您需要调用 getMappings 并获取一个包含整个文件已解析的巨大数组,即每个可能的行/列,这样您只需要获取映射一次,然后运行任何未来的缩小错误与巨大数组。这就是为什么 OP 建议缓存 getMappings 的结果,因为它是一个极其缓慢的操作,因为它需要遍历整个文件,但您只需要执行一次。还要注意,即使您缓存了它,序列化/反序列化也很慢。 - Mahn
2/2 不像直接使用“getMappings”那样慢,但仍然明显。否则,我可以确认它仍然有效,只需确保将进程卸载到不面向用户的地方即可。 - Mahn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接