Subresource Integrity
Dec. 17th, 2015 11:23 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Ещё одна типасекьюрная технология Subresource Integrity. Не просто грузим скрипт откуда-то, но сопровождаем его хеш-суммой. И если хеш-сумма не совпала, то браузер грязно ругается. Я не понял, правда, насколько грязно: одно дело всплывающее окошко, другое - сообщение где-то в консоли отладки.
Модель угроз, как я понимаю - скрипты, которые тянутся с CDN. У CDN узлов много по всему миру, и кто его знает, кто в датацентры ходит. Если злоумышленник достаточно близко (у провайдера, как в Китае) и страница отдаётся по HTTP, то можно, конечно, и хеш подменить вместе со скриптом.
Ещё один потенциальный источник проблем, который так можно ловить - это внезапная смена версий скрипта. Но думаю, что приличные framework-и разные версии кладут по разным путям.
В Chrome добавили поддержку такой возможности уже некоторое время назад (версия 45, сейчас актуальная 47), в Firefox только что. В Opera тоже есть.
Модель угроз, как я понимаю - скрипты, которые тянутся с CDN. У CDN узлов много по всему миру, и кто его знает, кто в датацентры ходит. Если злоумышленник достаточно близко (у провайдера, как в Китае) и страница отдаётся по HTTP, то можно, конечно, и хеш подменить вместе со скриптом.
Ещё один потенциальный источник проблем, который так можно ловить - это внезапная смена версий скрипта. Но думаю, что приличные framework-и разные версии кладут по разным путям.
В Chrome добавили поддержку такой возможности уже некоторое время назад (версия 45, сейчас актуальная 47), в Firefox только что. В Opera тоже есть.
no subject
Date: 2015-12-17 08:51 am (UTC)(а потом правило в адблоке настроить - если хоть у одного img на странице есть integrity, то все img без интегрити - резать, потому что это баннеры.)
no subject
Date: 2015-12-17 08:53 am (UTC)Впрочем, про современные баннеры я не уверен, что они вообще содержат img, а не те самые script и link :-)
no subject
Date: 2015-12-17 10:16 pm (UTC)no subject
Date: 2015-12-17 10:55 am (UTC)no subject
Date: 2015-12-17 10:55 am (UTC)no subject
Date: 2015-12-19 12:10 pm (UTC)