2

在单步执行缩小的库代码等时,源映射非常有用。默认情况下,使用源映射的 .js 文件的前几行可能如下所示:

/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license
//@ sourceMappingURL=jquery.min.map
*/

如果您不在jquery.min.map同一个目录中,支持源映射的浏览器将发出冗余的 http 请求,从而导致 404 错误(听起来很熟悉,favicon 任何人?)。

我注意到这sourceMappingURL可能指向另一个域;我不提倡这种做法,但它不受 CORS 约束似乎很奇怪:

/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license
//@ sourceMappingURL=//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.map
*/

映射的未缩小来源是否安全?即,如果在上面的示例中映射的服务器被破坏并且恶意代码被添加到源中,它会/会被执行吗?如果您正在调试代码并单步执行它呢?我找不到任何可以回答这个问题的实现细节。

4

1 回答 1

5

当您单步执行代码时,您正在执行缩小的代码,而不是源映射中的代码。源映射仅用于在调试器中显示。

于 2013-09-27T00:16:56.420 回答