Как я могу объединить глобальный тег сайта Google с целостностью субресурса? - PullRequest
0 голосов
/ 30 июня 2018

Я использую глобальное отслеживание на своем сайте, следуя шагам , описанным Google . Но я также хочу постоянно обновлять мой Subresource Integrity (SRI). Поэтому я запустил следующую команду, чтобы найти хеш целостности для gtag.js.

> curl -s https://www.googletagmanager.com/gtag/js |\
  openssl dgst -sha384 -binary |\
  openssl base64 -A

Добавление этого атрибута целостности к тегу script с атрибутом crossorigin="anonymous" приводит к тому, что браузер не может загрузить скрипт gtag. Причина:

Целостность подресурса. Ресурс 'https://www.googletagmanager.com/gtag/js' имеет атрибут целостности, но для этого ресурса требуется, чтобы запрос включал CORS для проверки целостности, а это не так. Ресурс заблокирован из-за невозможности обеспечения целостности.

Очевидная причина - заголовок access-control-allow-origin, который возвращает Google и разрешает только источник того же хоста.

Кто-нибудь знает, есть ли другой хост для этого скрипта? Есть ли другой способ перенести gtag на ваш сайт?

1 Ответ

0 голосов
/ 11 сентября 2018

Единственный обходной путь для этого может состоять в том, чтобы просто извлечь ресурс, сохранить его на том же сервере, а затем установить собственный заголовок Access-Control-Allow-Origin.

Это немного глупо - потому что это не только снижает ценность распределения ресурса через CDN, но и делает SRI бессмысленным (потому что вы работаете со статической локальной копией, а не с удаленной, гарантии уменьшают риск манипулирования путем проверки его с помощью SRI).

Это также будет работать только до тех пор, пока ресурс остается статичным. Но поскольку SRI зависит от статического ресурса (так что хэш будет совпадать), любое изменение ресурса на сервере приведет к принудительному применению SRI, что в любом случае приведет к сбою ресурса. Так что это может быть не более хрупким, чем использование SRI в первую очередь (если вы не генерируете контрольную сумму ресурса на лету ... в этот момент в SRI нет реальной точки).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...