74

I'm using UglifyJS to minify and uglify my sources, and Sentry to report errors from my production environment.

In order to get errors from Sentry, in a readable manner, I need to add source-map

Is it safe to do it in production servers, or the source-maps files should only exist on staging environment?
Is there a way to secure them on production environment?

4

2 回答 2

53

寻找可能的解决方案,如果有人没有专门使用 Sentry,我找到了这篇博文(讽刺的是 Sentry 博文):

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

哪里有一个有趣的想法:“私人源地图”。这意味着在无法从 Internet 访问的某个地方(例如您的公司 VPN)生成源地图,因此只有您或您的团队可以访问源地图文件。

引用帖子的“Private Source Maps”部分:

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

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

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

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

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

于 2016-09-01T06:01:30.813 回答
13

您主要关心的是“如果用户有我的源代码可以吗?” 通常这很好,因为用户无论如何都可以对事物进行去混淆处理。

也就是说,如果您使用的是 Sentry,您实际上可以使用发布 API来避免这个问题。您仍然需要生成工件并设置 URL(或 API 可以处理的东西),但您不必将它们公开到 Internet。

于 2015-06-25T01:44:40.007 回答