Webpack имеет функцию добавления nonce
ко всем загружаемым скриптам.
Чтобы активировать набор функций, переменная __webpack_nonce__ должна быть включена в ваш скрипт ввода.
Входной файл в приложении реакции, сгенерированный create react app
по умолчанию, равен index.js
. Так что все, что мне нужно сделать, это добавить в входной файл :
// ...
__webpack_nonce__ = 'c29tZSBjb29sIHN0cmluZyB3aWxsIHBvcCB1cCAxMjM=';
// ...
И последнее, что нужно, - включить веб-пакет CSP.
Обратите внимание, что CSP не включены по умолчанию. Соответствующий заголовок Content-Security-Policy или метатег должен быть отправлен вместе с документом, чтобы дать указание браузеру включить CSP. Вот пример того, как может выглядеть заголовок CSP, включающий в себя URL из белого списка CDN: Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted.cdn.com;
Однако я получил ошибку
'__webpack_nonce__' is not defined
Я пытался объявить одноразовый номер. Все еще не работает.
webpack_nonce указано в файле ввода, а не в конфигурации.
Итак, что я делаю не так? Может быть, в документах не хватает ключевой информации по этой теме? Как включить функцию CSP в веб-пакете для приложения React?