Атрибут integrity (SRI)

Атрибут integrity (SRI)

Введение: 

Для клиентов UX Feedback, которые используют код платформы с атрибутом integrity, рекомендуем обновлять версии вместе с выходом новых релизов.

Для обновления кода необходимо:

  1. Обновить URL window, document на актуальную версию кода, которая указана в таблице и заголовке.

  2. Обновить атрибут -  s.integrity 

 

С атрибутом integrity код примет вид (без параметров):

<script> (function(w, d, u, h, s) { w._uxsSettings = {id: 'XXXXXXXXXXXXXXXXXXXX'}; h = d.getElementsByTagName('head')[0]; s = d.createElement('script'); s.integrity = 'sha384-__________'; s.crossOrigin = 'anonymous'; s.async = 1; s.src = u; h.appendChild(s); })(window, document, 'https://cdn.uxfeedback.ru/N.N.N/widget.js'); </script>

 

Где:

XXXXXXXXXXXXXXXXXXXX- Необходимо подставить ID вашего аккаунта UX Feedback, который можно найти в личном кабинете, в разделе “Код установки” (код установки в личном кабинете не учитывает использование атрибута integrity)

s.integrity- Необходимо подставить хэш безопасности, который можно получить на сайте https://www.srihash.org/ . Инструкция - https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity#tools_for_generating_sri_hashes

https://cdn.uxfeedback.ru/N.N.N/widget.js - Вместо N.N.N необходимо подставить актуальную версию кода.

Актуальная версия кода - 6.6.0

История изменений:

Дата

Версия

Изменения

Integrity

03.2026

https://cdn.uxfeedback.ru/6.6.0/widget.js

  • валидация типов пользовательских свойств при добавлении

sha384-MD49xiWONVnNVTcNj3aGSNmlNVPxk8jRVKWAXgMw5L26JuoUHgmSdCHqWfmsnl3i

02.2026

https://cdn.uxfeedback.ru/6.2.0/widget.js

  • Исправление подскролла к полю ввода на мобильных устройствах при появлении клавиатуры

  • Технические доработки для отображения превью в ЛК UXFB

sha384-jQQ2jAR9naoY/U/4ViZp2DYqWpQHx2/XATm8X1CdJFeBqm/yW2PBTo9SSnOz9Ao9

12.2025

https://cdn.uxfeedback.ru/6.0.1/widget.js

  • Обновление UI форм

sha384-SFpQXqALNk9aOeVKOTuG+6FYuP8UDoeG6JcN3zwa88rQZgsCqi/aGyNUDoALjEV0

12.2025

https://cdn.uxfeedback.ru/5.10.0/widget.js

  • Переопределение для элементов формы свойства overscroll-behavior

  • Доработки для метода /forms

sha384-qDtxA50LrQc5WNhFc/xlNPTDPKL1BQKn0SXcJfBfsfehVnvirASG0eF542R3MolY

12.2025

https://cdn.uxfeedback.ru/5.9.0/widget.js

  • Поддержка replaceState метода

sha384-qDtxA50LrQc5WNhFc/xlNPTDPKL1BQKn0SXcJfBfsfehVnvirASG0eF542R3MolY

11.2025

https://cdn.uxfeedback.ru/5.8.0/widget.js

  • Доработки стилей полей формы

sha384-mlUtrwkNK3U2eDyHtfTsTfnazjS+cF2wLD+DgefJf0IVtmigbizszXUj4U9DLzTu

10.2025

https://cdn.uxfeedback.ru/5.7.0/widget.js

  • Доработка стилей формы(тени, центрирование, отступы)

  • Добавлен подскролл к блоку с персональными данными если форма на всю длину

sha384-dTp2SruZrWwnK5ax65CApS7wwen873G+G5/gaOpTPHbjHbHktCMQLNY4nGcSTeiN

10.2025

https://cdn.uxfeedback.ru/5.6.0/widget.js

  • Добавление изображений (в том числе и загруженных в ЛК) для заголовков полей (v6/widgets)

sha384-ttYpWZsqUygCR4g/3x2ZFs+eooRhQXhlDv3VZihMGP5mHBq8zhGSUjQlRgBWNlNv

09.2025

https://cdn.uxfeedback.ru/5.5.0/widget.js

  • Расширение delegate. Добавление свойства eventName для события showForm. Подробнее

sha384-TopWhpKT3T+5L0WPd8OkE7NLVXwEiUl0S02DfjZm0y+Tq6/qkcu8NiaWeA6y9ZnU

08.2025

https://cdn.uxfeedback.ru/5.4.1/widget.js

  • Доработка таргетингов

sha384-krpxHAgtH/ntE43EeRS4Vy7WdatvLvk+To4MEOemtmGsulEwbrd3RGRJdI2ZZQ4K

08.2025

https://cdn.uxfeedback.ru/5.4.0/widget.js

  • Рефакторинг поля типа скриншот

  • Доработки таргетингов

sha384-1QWL4lgaNORDV3CThxY9mDMUfilDSeNqXKu0Ab0qPG0JiMYTpy4JVGcBJWN4KA81

06.2025

https://cdn.uxfeedback.ru/5.3.0/widget.js

  • Добавлена поддержка шрифтов сайта клиента. Параметры внешних шрифтов ('external' и 'src') теперь необязательны

sha384-4rxIb23gC/poTB/rTzlKfoNEe88NVsVOzfoBnFfFXAeoaUFuWj0VnunG4chU3SMy

05.2025

https://cdn.uxfeedback.ru/5.2.0/widget.js

  • Исправлено отображение поля типа звезды

sha384-5w49mI3z8s0kpF7v9ebCs0uUB8Nf87uZ0bVTtD6edNYbx3KjWkIozDa6dTy70ftk

04.2025

https://cdn.uxfeedback.ru/5.1.3/widget.js

  • Доработки для слайдера числового рейтинга и NPS мобильной версии форм

sha384-HRShwOw1+RAttJzyXHiPXyQrZ0ttEwZrdmVghZjlEABRFo4T+X3eh/tcViZS1cym

04.2025

https://cdn.uxfeedback.ru/5.1.2/widget.js

  • Добавлена возможность указать z-index равный 0

sha384-uwjsB+aZkzsCOqERAWuIFE4C9ft8G4MyquFGb18ZQHWsjkxMYSb664BRnXocabvs

03.2025

https://cdn.uxfeedback.ru/5.1.1/widget.js

  • обработка ошибки загрузки изображения кампании пассивного фидбека

sha384-8nTxHq2B1E+UUnzzFQP9+PvtuKeRdSJVaWI4qe5wCCenFUGab+tE7UeB4agcipyP

03.2025

https://cdn.uxfeedback.ru/5.1.0/widget.js

  • форматирование заголовков полей (v4/forms)

sha384-uD41L2Q5MY1JGdWWNMKzC3OxxryfZ76+7luMbLjGfg+GT5KoMDWQMJJZMbNIg1+N

02.2025

https://cdn.uxfeedback.ru/4.10.0/widget.js

  • передача версии скрипта в параметры визита

sha384-5qA5UjADhcShEnRJEGsAsIG/tuCee6JfGGgN6XpZmOUFElkO8TmpYfS8MgZbvUMe

01.2025

https://cdn.uxfeedback.ru/4.9.3/widget.js

  • исправление для переопределения стилей полосы прокрутки формы

sha384-isCXjw7NrTaB1CgE3W2z9vOSp0/sarXtRmWNggL6pCnHpWtyBgNOXJuHmo9Wbm5r

12.2024

https://cdn.uxfeedback.ru/4.9.2/widget.js

  • Новый тип поля - звезды (v5/widgets)

sha384-ngnRh1vLRgkdZJumsteWrRtnoacoVbfgM+6BxRUDZdgVvz+I1Ycb/345Dm7Y8g9V

10.2024

https://cdn.uxfeedback.ru/4.6.0/widget.js

  • Замена ресайза скриншотов на валидацию размера

  • изменения механизма позиционирования и подстройки высоты мобильных форм

  • увеличение времени хранения данных о показе в соседних вкладках до 24 часов

sha384-/h5Z2h/PGjO9Z5nCUYl821xQe3tkYa1UK7TKdSZmm/nQt8GfraQvu5eq0sZRCZ0m

08.2024

https://cdn.uxfeedback.ru/4.5.0/widget.js

  • изменение механизма работы с utm метками блока copyright

sha384-YOJCU7vW7s5KcdnIzoHIav54yeN3TQ5BBUKdfWR4onKJGuzm/7+NjfQwy8VDGO3v

08.2024

https://cdn.uxfeedback.ru/4.4.0/widget.js

  • расширение передаваемой meta информации о сущности показа формы

sha384-gHySOwGPzAKw6vopBkK1a5lZP1Ck7ZkjnNkvZtaM6h8WxcHmUumfOKn4/AEBWfPw

06.2024

https://cdn.uxfeedback.ru/4.3.0/widget.js

  • Атрибут на список

  • отправка событий в GA

  • отправка событий о действиях пользователя

sha384-Ej1P+o72rA0jTkmh3DwGvIuflxF+tQDbAUA5KC8mHxjCB5IsnmnAY/GnvddCbrYX

06.2024

https://cdn.uxfeedback.ru/4.2.0/widget.js

  • Обновление библиотек в зависимостях

  • Добавление типа сообщений setCookie (iframe)

sha384-N/269Ay8/wEfYMVM8V/O17SP2yXsTyyoTViVZINz+hrg3uH8pe3hke0f5QvuZw0P

04.2024

https://cdn.uxfeedback.ru/4.1.0/widget.js

  • Атрибуты событий (v4/widgets)

sha384-iVFkbwpd5fvolKrn+V8ZjmSjxf99TwABPmnob2J1icTv2qd3V

02.2024

https://cdn.uxfeedback.ru/4.0.0/widget.js

  • Новая логика со сценариями (v3/forms, v3/widgets)

  • Фикс бага с скрытием кнопки из-за свайпа формы вниз

sha384-TImMaqIR+xhirT3OSUBhWkUsS9Fc3X0JJfzmKFmwE+0dgqHhpquY+vvtGKZlz3w6

01.2024

https://cdn.uxfeedback.ru/3.15.0/widget.js

  • Добавили uid в ответ

sha384-cKh97dSxyiG7o+ceJfCQLKKgWZXCKEXoY//daCEHPGPMmItR5N+9hvVglmF6+TvL

01.2024

https://cdn.uxfeedback.ru/3.14.0/widget.js

  • Уменьшение времени вычисления уникального хэша пользователя

sha384-/qrXpEB6bM8NmpvX/EbOCykl6xtqiwb+wbv6eIuAtVo/iitavJVoY+iIIOZU4glh

11.2023

https://cdn.uxfeedback.ru/3.13.0/widget.js

  • Логика показа в зависимости от вопросов на разных страницах

sha384-1WKkfMHv83ASO3XPhrHtfZG5zNjeAbKURS6f5Uv5Afo8reF0a0CrdL9STK2bWgjD

11.2023

https://cdn.uxfeedback.ru/3.12.2/widget.js

  • исправления для режима превью

  • исправления для стилей чекбокса

sha384-1B6wWA3TvSLc5BcJNgFtmBJFSwvZpT1WbdFqHw2uZ3+XgaNKNNxN+EuLidOT/DST

10.2023

https://cdn.uxfeedback.ru/3.12.1/widget.js

  • Ресайз полей ввода в зависимости от контента в них

  • Исправление скролла в полях ввода для ios

sha384-bzhBzbjjAyRY9lJWmrnp5LrGiJRYhqErpzjYQ64K8W8+fBpjWnawznP9Ddi7o58E

10.2023

https://cdn.uxfeedback.ru/3.12.0/widget.js

  • Таргетинг на язык

  • автоскролл к подсвеченным вопросам с ошибкой

  • Логотип

sha384-SCFngZoZQqg2lqH4xJvkoIY9pulIW2wWKbTvZzA4l3kP+vi/mljjD3U3m2/MLZvD

10.2023

https://cdn.uxfeedback.ru/3.11.0/widget.js

  • динамические параметры в ссылках

  • исправление уменьшения иконки пассивного фидбека при смене стороны отрисовки

  • добавление второго названия для yaId (iframe)

sha384-gLpSg+yD7Qi20HlOI3qdvq3+nT9qJSIGt1OnPqAjZJGkFF8ZBlQQ6C4kfJFyICer

09.2023

https://cdn.uxfeedback.ru/3.10.0/widget.js

  • ничего из перечисленного в чекбоксах

  • z-index как параметр темы

  • cookies в сообщении history (для iframe)

sha384-VM0endgGr1RfqFf5/LyqOlnD6hI6J0MLZyroimv3O3EBqTh+GmalAbcRRB6ITT+s

08.2023

https://cdn.uxfeedback.ru/3.9.0/widget.js

  • Новый формат тем на роуте v2/forms (v2/widgets)

  • Исправление ошибки с клиентскими шрифтами

  • Сохранение ответов при скрытии полей

  • Доработки для работы превью app (внутренние изменения для режима iframe)

sha384-2Bt35Nx1w0tIlIO4Q7VfoPVbAzXUdsH+LB0vMgFdU/d/fIBTk5cJUnPwjjr896QO

07.2023

https://cdn.uxfeedback.ru/3.8.0/widget.js

  • (High) Исправление бага с слайдером для рейтинга и nps в мобильном safari

  • Исправление стилей popup формы

  • Переключение виджета на работу с общими компонентами формы

sha384-Ddow7dxyMoyw/CSLH3eOeOR69ZB5/PmFYKdKJQPQYEDth5NZLX8EKQBWD9MwIRpq

04.2023

https://cdn.uxfeedback.ru/3.7.1/widget.js

  • Внедрение фингерпринт (просто отправка бек на него не реагирует)

sha384-4CC0shEaXNm1on40Kve/mOLEV7hgvwG4Z+EDMKkEg65dJRVH0NN1Al6C06IjwoJw

04.2023

https://cdn.uxfeedback.ru/3.7.0/widget.js

  • Удаление библиотечного скролла из формы (исправления в позиционировании форм)

  • Исправление spa для iframe

  • Исправление позиционирования popup форм в quirks mode (DEV-3081)

sha384-WPKrZnrqNOvHQB5+KilxGCr1MoGrJquay1BW7P380NUqZJ4C0Rti8GIJZ/hpC1bH

03.2023

https://cdn.uxfeedback.ru/3.6.1/widget.js

  • Фикс 2944 (прыжки мобильной формы при вводе текста)

  • Фикс 3021 (наложение фона на форму у клиентов с кастомным z-index)

sha384-MMWKERLoNh2QIp4dvarDZPV6v2TSl90A6uGsCb9J9eb75kWAs9h7T6Zh6DtYahcR

03.2023

https://cdn.uxfeedback.ru/3.6.0/widget.js

  • Добавление новой логики отображения политики конфиденциальности

sha384-rJb4xEIe5AW0cOns89EjwApBiYuOEOKwSbFRosuJdNe2bJUnsPWJiYPzzEhvx1Gf

02.2023

https://cdn.uxfeedback.ru/3.5.0/widget.js

  • Добавлена возможность более гибкой кастомизации стилей форм

sha384-GODxCHrjIHgTmpY7Z0Bqt43D6NsJ7MMg+dxN3GDjZUFo3s7jk20VkTAuFJOv2Yuh

01.2023

https://cdn.uxfeedback.ru/3.4.0/widget.js

  • Добавлена возможность исключать отправку cookie

  • Мелкие правки скриншотов

  • Исправление отображения формы в iOS 14

sha384-2YYy1vGh25qWo0+zPU3m/NvAnMGmGdKbtBE6YNiYXzUM+jVmq9W36Wbx9epO0fyJ

Дополнительная информация о покрытии внутренних файлов атрибутами integrity.

Как вы можете знать, код виджета не ограничивается только файлов widget.js, он содержит несколько дополнительных скриптов, которые подгружаются файлов widget.js. Из-за этого у некоторых клиентов может возникнуть вопрос, если атрибут интегрити добавляется только к файлу widget.js (глава “Для обновления кода необходимо:” чуть выше как раз про это и рассказывает) как быть уверенным, что другие скрипты также защищаются.

 

Для этого придется перейти по ссылке с актуальной версией widget.js (там откроется страница с кодом этого файла)

К примеру, так выглядит версия 3.8.0

В этом файле нас интересуют участки кода представленные ниже:

a.integrity=i.sriHashes[s]
i.sriHashes={ 14:"sha384-g+M/CbjDHk7oVla/k36DPTdO30bgYLdl6lv+vKeXh/+iM5gE9B+LiPQ43rhdmkwQ", 290:"sha384-hUFHQUuw8nUbHmv/2q2eMgcmTi6IMTgFa9pqqBo5Uki2432xSVYntitG4z8cOP3M" 418:"sha384-l199ebs+rOn4n1oJWPAVSEO2sZ4VdgEXg+NmY3ff60uqg1WJK+ZmC0gyRDFf53Uy", 761:"sha384-2B54d2VwH214nrVBok2ZVNAPcZ7hpn0t85Q1SnseJhDK1Wr1kkNjGeZal9VJ3KUS" } // хэши и их отображение может отличаться в реальном коде

14, 290, 418, 761 - это названия файлов, которые widget.js дополнительно загружает

А часть после двоеточия - как раз хэш безопасности.

Вот так эти файлы выглядят в network

Получается, если изменится какой-то из внутренних файлов изменится его хэш и загрузка не пройдет, а если поменять хэш в файле widget.js, то не пройдет уже загрузка самого файла widget.js, тк у него изменится хэш безопасности, а верный контролируется на стороне клиента.