生产中的源映射文件 - 是否安全

Source maps files in production - Is it safe?

本文关键字:是否 安全 文件 映射 生产中      更新时间:2023-09-26

我正在使用UglifyJS来缩小和丑化我的源代码,并使用Sentry来报告生产环境中的错误。

为了以可读的方式从哨兵那里获取错误,我需要添加源映射

在生产服务器中执行此操作是否安全,或者源映射文件应仅存在于暂存环境中?
有没有办法在生产环境中保护它们?

在寻找可能的解决方案时,如果有人没有专门使用 Sentry,我得到了这篇博文(具有讽刺意味的是,这是一篇 Sentry 博客文章(:

https://blog.sentry.io/2015/10/29/debuggable-javascript-with-source-maps.html

有一个有趣的想法:"私人源地图"。这意味着在无法从互联网访问的地方(例如您的公司 VPN(生成源映射,因此只有您或您的团队可以访问源映射文件。

引用帖子的"私人源地图">部分:

[...]我们所有的示例都假设您的源映射是公开可用的,并且与执行JavaScript代码的服务器相同。在这种情况下,任何开发人员都可以使用它们来获取原始源代码。

为了防止这种情况,您可以改为从只有您的开发团队可以访问的服务器提供源映射,而不是提供可公开访问的 sourceMappingURL。例如,只能从公司的 VPN 访问的服务器。

/

/# sourceMappingURL: http://company.intranet/app/static/app.min.js.map

当非团队成员在打开开发人员工具的情况下访问您的应用程序时,他们将尝试下载此源映射,但收到 404(或 403(HTTP 错误,并且不会应用源映射。

对我来说似乎是个好主意!

你主要关心的是"如果用户有我的源代码可以吗?通常没问题,因为用户无论如何都可以对事情进行去混淆。

也就是说,如果您使用的是 Sentry,您实际上可以使用发布 API 来避免此问题。您仍然需要生成工件,并设置 URL(或 API 可以处理的内容(,但不必将它们公开给互联网。