Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы Поиск в этой теме
Старый 29.10.2021, 17:49   #1
vv_tomilin
Пользователь
 
Регистрация: 03.01.2021
Сообщений: 11
По умолчанию React + Electron, content security policy блокирует fetch запросы из компонента React к сторонним api

Добрый день!

Помогите пожалуйста исправить проблему с Content security policy.

Проблема заключается в следующем:

При помощи Electron Forge внедрил свое ReactJS приложение в ElectronJS, но возникла проблема с политикой безопасности, а конкретно - Electron не дает выполнять fetch запросы на сторонний API (проблема еще усугубляется тем, что API домен без SSL, простой http://).

Fetch запрос выполняется из компонента App при первом рендере (ComponentDidMount), но он сразу же блокируется.

Пытался работать с CSP и через manifest.json, и через главный файл Electron, и что то там делал с другими конфигурациями <meta> тегов, но все тщетно.

Отключил web безопасность в электрон, разрешил подключение к протоколам http/https (webPreferences: {webSecurity: false, allowRunningInsecureContent: true}) тоже никак не влияет на ситуацию.

Метод который давал хоть какую то реакцию это - через:
Код HTML:
<meta http-equiv="content-security-policy" ...>
,
прописывал различные конфигурации.

При добавлении домена с API в connect-src ошибка с доменом API вроде как пропадает, но появляется при этом та же проблема что и с API, но только с http://localhost:3000, если добавляю http://localhost:3000 к connect-src через пробел, все возвращается к исходному результату и в ошибке написано, что connect-src явно не определен и применен default-src 'self' (хоть он и с другим значением).

Проблема с http(ws)://localhost:3000 решается вот этой конфигурацией:

Код:
<meta http-equiv="Content-Security-Policy" 
          content="default-src 'unsafe-eval';
                  script-src-elem http:;
                  connect-src ws: http: http://data.fixer.io/;
                  style-src 'self' 'unsafe-inline'">
Но никак не решает проблему с блокировкой API (http://data.fixer.io/) даже добавив его в список connect-src. В консоли вот это:

Пишет что connect-src явно не указан, хотя он указан и работает для http(ws)://localhost:3000. Либо я чего не понимаю...

Перечитал тонну различной информации на англоязычных сайтах, но не нашел ничего рабочего, в рунете тоже ничего.


P.S. Само приложение ReactJS без Electron работает корректно, все fetch запросы отрабатывают так как запланировано.

P.P.S. Прошу сильно не ругать, я новичек во всем этом, и это мое первое учебное приложение в связке React + Electron. Спасибо за понимание!

Заранее благодарен за любую информацию, которая даст хотя бы правильное направление для поиска решения проблемы.

Последний раз редактировалось vv_tomilin; 30.10.2021 в 09:12. Причина: Уточнение заголовка
vv_tomilin вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Synapse + Instagram API. Не уходят GET/POST-запросы olegstepp Работа с сетью в Delphi 2 20.11.2014 19:57
http analyzer api Entry.Content.data dosha Работа с сетью в Delphi 1 19.11.2014 20:19
Запросы API сайта, Delphi библиотека Synapse uralgsm Помощь студентам 1 06.01.2014 01:08
replacing invalid security id with default security id for file XXXXXX Alar Операционные системы общие вопросы 3 01.02.2012 23:31
windows security center api Zigmuntfreyd Win Api 0 12.10.2009 08:54