2016-03-18 2 views
2

Я читаю о Subresource Integrity, но меня беспокоит потеря производительности. Как это (необходимость хэширования каждого файла перед его исполнением) замедляет загрузку страницы, особенно на устройствах с низкоуровневыми CPU?Целостность и производительность Subresource

ответ

1

Как ...? - он использует CPU для вычисления хэшей.
Сколько? - Измерение в зависимости от размера процессора и ресурсов и т. Д.
Но ... - для производительности вы могли бы попытаться объединить и минимизировать ресурсы и использовать менее хеш-алгоритмы с интенсивным использованием процессора.

Не волнуйтесь, будьте счастливы!

+0

Дело в том, стоит ли это делать? Шансы на то, что большой открытый CDN (например, googleapis или cdnjs) будут взломаны, близки к нулю, атаки MITM не могут возникнуть при использовании https, так что пока я не вижу никакой пользы при добавлении этого –

+0

@the_nuts. Хотя шансы CDN-s становится взломанным или взломанным, HTTPS, который сломан и т. Д., Может быть низким (но не равным нулю), это действительно сводится к ** вашему мнению ** и анализу того, насколько производительность и безопасность ценны для вашего конкретного приложения. Я сомневаюсь, что мое мнение (которое обычно склоняется к тому, чтобы ценить безопасность больше, чем производительность) было бы хорошим ответом в формате переполнения стека. – jotik

0

Сегодня я провел тест производительности и наблюдал следующие средние значения при генерации хэшей для файла CSS CSS Twitter Bootstrap, который был изменен.

File Size: 121200 
SHA1 Time: 0.50199 ms 
SHA256 Time: 0.89691 ms 
SHA384 Time: 1.59249 ms 
SHA512 Time: 1.58901 ms 

SHA1 считается небезопасным и может не работать. Таким образом, если вы используете SHA256, вы можете ожидать общую задержку менее 1 мс на ресурс на общем устройстве. Я провел этот тест на моем полуторалетнем ноутбуке Corei5 ASUS, который не очень хорош в производительности. Кроме того, 120 КБ немного выше среднего. Большинство статических файлов меньше, а меньший размер файла будет означать ускорение генерации хеширования.

Основываясь на этих тестах, если я взвешиваю преимущества использования SRI со стоимостью 1 мс на ресурс, я предпочту использовать SRI, поскольку стоимость почти незначительна. Изменения хакеров, попадающих на сервер большого поставщика CDN, не являются незначительными, как вы сказали в комментарии. Я бы указал вам на past incident of BootstrapCDN, где хакеры вводили свой собственный javascript для атаки пользователей IE. BootstrapCDN использует MaxCDN (Stackpath), который также является крупным провайдером.

Смежные вопросы