2

Chrome 확장 배경 페이지에서 Firebase를 사용하려고하지만 인라인 스크립트를 실행하는 것처럼 보입니다. 보안 문제로 인해 허용되지 않습니다.Firebase + Chrome 콘텐츠 보안 정책 설정?

저는 현재 CSP를 설정 한에 :

나는 초기 중포 기지 스크립트를로드 할 수있어
{"content_security_policy": 
    "script-src 'self' https://cdn.firebase.com https://<my-subdomain>.firebaseio.com; object-src 'self'"} 

하지만, 내가 할를 다음과 같은 새로운 중포 기지를 ('내-중포 기지-URL')를 호출시 오류 :

Refused to execute inline script because it violates the following Content Security Policy directive: ". Uncaught ReferenceError: pRTLPCB is not defined

은 주변에 직장이나 충고 중포 기지 팀 (또는 사람) 줄 수 있고, 스크립트가 인라인 실행되는 이유의 아마 설명이 있습니까?

+0

아, 나는 유일한 사람이 아니라는 것을 알고 있습니다. 네, 문제는 파이어베이스 생성자가 전화를 걸고 펑키 한 마술을하고 있다는 것입니다 (console.log 새로운 Firebase (URL)). – jjperezaguinaga

+0

슬픈 듯이 컨텐츠 측에서 성공하지 못했습니다 - http : // d. prh/i/pRMz – jjperezaguinaga

답변

7

질문을 받았을 때 Firebase가 Chrome 확장 프로그램에서 작동하지 못하게하는 버그가 있었지만 지금은 수정되었습니다.

올바른 CSP는 :

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

(. 중포 기지 내부적 다른 하위에 연결할 수 있으므로 도메인 와일드 카드가 중요 않는다) 중포 기지를 이용하여 샘플 크롬 연장

를 참조 : https://github.com/firebase/firebase-chrome-extension.

+0

대답이있을 때 업데이트 해주십시오! – sgrove

+0

'https : //auth.firebase.com ...'스크립트를로드하는 것을 거부했지만'https : // auth.firebase.com'을 CPS에 적용하면 문제가 해결됩니다. – Lukas

3

비슷한 문제가 있습니다. Firebase의 생성자는 일부 스크립팅 (모호한 것 같습니다)을 수행하기 위해 일부 돔 조작을 수행하는 것처럼 보입니다. Chrome CSP를 트리거하는 것은 잘 수행 할 수 없기 때문입니다.

Sandbox Pages을 통해 생성자를 래핑하려고 시도했지만 성공하지 못했습니다 (내 매니페스트가 모든 권한을 가지고 있음에도 불구하고 DOM ERR 18이 발생 함). 배경 페이지 또는 페이지 작업/브라우저 동작의 팝업 페이지에서이 작업을 수행하려고해도 동일합니다.

대체? Firebase를 컨텐츠 스크립트로 삽입 할 수 있습니다 (매니페스트에서 수행). Message Passing을 통해 Chrome.extension.sendMessage로 콜백을 보냅니다. 지금 당장이 작업을 정확하게 수행하고 있으므로 Firebase 생성자가 작동하는 방법을 알려줄 수 있습니다.

해결책? 제임스 Tampling이를 읽고이 :) 후 조회 할 중포 기지 팀을 묻는

UPDATE : 주입 Firebase.js 콘텐츠 스크립트가 작동하지 둘 다,하지만 좋은 소식은 중포 기지 팀 (앤드류에 도달한다는 것입니다하지 않는 한 리)가 확인하고있다.

업데이트 2 Firebase 팀에서 수정했으며 이제는 팝업 페이지 (브라우저 팝업 또는 페이지 작업 모두)에서 작동합니다. manifest.json에 다음 CSP를 추가해야합니다. "content_security_policy": "script-src 'self' 'unsafe-eval' https://cdn.firebase.com https://*.firebaseio.com https://*.firebaseio.com; object-src 'self'; " 그 이후로는 이상하게 작동합니다.

관련 문제