2013-09-27 39 views
2

Source maps在单步执行缩小的库代码等方面非常有用。使用源地图.js文件中的前几行看起来是这样的默认:源地图安全性

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

如果你没有在同一目录jquery.min.map做,支持源映射将多余的http请求浏览器导致404错误(sounds familiar, favicon anyone?)。

我注意到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 
*/ 

被映射的未定义源是否安全?即如果在上面的示例中映射的服务器受到威胁并且恶意代码被添加到源,它是否会被执行?如果您正在调试代码并逐步完成代码呢?我找不到任何可以回答这个问题的实现细节。

+0

源映射中的代码未执行,仅用于在调试器中显示。 – Barmar

回答

5

当您逐句通过代码时,您正在执行缩小的代码,而不是源地图中的代码。源图仅用于在调试器中显示。