Безопасность исходных карт


Исходные карты чрезвычайно полезны, в частности, при пошаговом просмотре уменьшенного кода библиотеки. Первые несколько строк А.файл 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
*/

Сопоставляются unminified источников? например, если в приведенном выше примере сопоставленный сервер был скомпрометирован и вредоносный код был добавлен в исходный код, может ли он быть выполнен? А если вы отлаживаете код и проходите через него? Я не могу найти никаких деталей реализации, которые могли бы ответить на этот вопрос.

1 2

1 ответ:

Когда вы проходите через код, вы выполняете уменьшенный код, а не код в исходной карте. Исходная карта используется только для отображения в отладчике.