Вопрос:

Настройки политики безопасности контента Firebase + Chrome?

google-chrome-extension firebase content-security-policy

3404 просмотра

3 ответа

562 Репутация автора

Я пытаюсь использовать Firebase на фоновой странице расширения Chrome, но похоже, что он выполняет встроенные скрипты, что запрещено по соображениям безопасности.

В настоящее время я установил CSP:

{"content_security_policy": 
  "script-src 'self' https://cdn.firebase.com https://<my-subdomain>.firebaseio.com; object-src 'self'"}

Я могу загрузить исходный скрипт Firebase, но после вызова нового Firebase ('my-firebase-url') я получаю следующую ошибку:

Отказ от выполнения встроенного сценария, поскольку он нарушает следующую директиву политики безопасности содержимого: ". Uncaught ReferenceError: pRTLPCB не определено

Есть ли какая-то работа или совет, который может дать команда Firebase (или кто-либо еще), и, возможно, объяснение того, почему сценарии выполняются встроенными?

Автор: sgrove Источник Размещён: 22.12.2012 10:27

Ответы (3)


3 плюса

2246 Репутация автора

У меня похожая проблема; Видите ли, конструктор Firebase, кажется, выполняет некоторые манипуляции с dom, чтобы выполнить некоторые сценарии (смутно, я знаю), которые запускают Chrome CSP, потому что хорошо, вы не должны этого делать.

Я даже пытался обернуть конструктор через « Песочницу» , но безуспешно (я получаю DOM ERR 18, даже если у моего манифеста есть все разрешения). То же самое происходит, если вы пытаетесь сделать это на фоновой странице или всплывающей странице для действия страницы / действия браузера.

Альтернатива? Вы можете внедрить Firebase в качестве скрипта контента (сделайте это из своего манифеста) и через передачу сообщений отправьте обратные вызовы как Chrome.extension.sendMessage. Я сейчас делаю это точно, поэтому я могу рассказать вам, как это все работает, по крайней мере, пока работает конструктор Firebase.

Решение? Джеймс Тэмплинг читает это и предлагает команде Firebase посмотреть после этого :)

ОБНОВЛЕНИЕ: внедрение Firebase.js в качестве скрипта содержимого также не работает, но хорошая новость заключается в том, что команда Firebase (до Эндрю Ли) проверяет его.

ОБНОВЛЕНИЕ 2 Команда Firebase исправила это, и теперь он работает со всплывающей страницы (как во всплывающем окне браузера, так и на странице действий). Вам нужно добавить следующий CSP в ваш manifest.json, хотя "content_security_policy": "script-src 'self' 'unsafe-eval' https://cdn.firebase.com https://*.firebaseio.com https://*.firebaseio.com; object-src 'self'; "после этого он творит чудеса.

Автор: jjperezaguinaga Размещён: 22.12.2012 11:41

8 плюса

8953 Репутация автора

Решение

В то время, когда был задан вопрос, существовала ошибка, препятствующая работе Firebase в расширениях Chrome, но теперь она исправлена.

Правильный CSP:

"content_security_policy": "script-src 'self' https://cdn.firebase.com https://*.firebaseio.com; object-src 'self'"

(Обратите внимание, что подстановочный знак в домене важен, поскольку Firebase может подключаться к другим поддоменам внутри.)

Пример расширения Chrome с использованием Firebase см. По адресу https://github.com/firebase/firebase-chrome-extension .

Автор: Andrew Lee Размещён: 23.12.2012 04:19

0 плюса

5447 Репутация автора

У меня есть приложение cordova js, работало только следующее:

<meta http-equiv="Content-Security-Policy" content="

  default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval';
  script-src  'self' https://www.gstatic.com https://cdn.firebase.com https://*.firebaseio.com; object-src 'self';

  " />

надеюсь это поможет.

Автор: Manohar Reddy Poreddy Размещён: 10.03.2019 07:32
Вопросы из категории :
32x32