2

ソース マップは、縮小されたライブラリ コードをステップ実行する場合などに非常に役立ちます。ソース マップを使用する .js ファイルの最初の数行は、既定では次のようになります。

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

同じディレクトリにない場合jquery.min.map、ソース マッピングをサポートするブラウザーは冗長な http 要求を作成し、404 エラーが発生します (おなじみのように聞こえますが、ファビコンはありますか? )。

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 に答える