Как включить политику безопасности контента Webpack в React? - PullRequest
0 голосов
/ 31 августа 2018

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?

1 Ответ

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

Если вы используете приложение create-реакции-приложение, то, возможно, ESLint сообщает об ошибке.

Попробуйте отключить его для строки:

__webpack_nonce__ = 'c29tZSBjb29sIHN0cmluZyB3aWxsIHBvcCB1cCAxMjM='; // eslint-disable-line no-undef
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...