2013-05-09 1 views
4

저는 패키지 된 Firefox OS 응용 프로그램을 작성하는 팀의 구성원입니다. 파이어 폭스 OS 권한이 응용 프로그램에 대한 제한 CSP 정책에 나는 응용 프로그램의 본체에 NG-CSP 지시어를 추가했습니다 인해 :Angular JS ng-csp 지시문을 사용하여 권한있는 Firefox OS 응용 프로그램 만들기

<body ng-app="the-app" ng-csp> 

파이어 폭스 OS 권한이 응용 프로그램에 대한 CSP 사양은 다음과 같습니다 default-src *; script-src 'self'; object-src 'none'; style-src 'self' 'unsafe-inline'

Firefox OS 장치 Angular에서 얻을 수있는 로그에 따르면 eval() 또는 Function() 생성자를 호출하는 것으로 보이며 둘 다 Firefox OS 권한있는 응용 프로그램에서 차단되고 응용 프로그램은 단순히 렌더링을 중단합니다.

이것이 예상 된 동작인지, 알려진 문제인지 또는 지침을 잘못 적용했는지 알고 싶습니다.

누구나 비슷한 문제가 있습니까?

미리 감사드립니다.

각도 버전 : 1.0.1

오류 로그 :

05-07 19:31:10.048: ERROR/GeckoConsole(1397): [JavaScript Error: "CSP ERROR: Couldn't parse invalid source 'unsafe-inline'"] 
05-07 19:31:10.048: ERROR/GeckoConsole(1397): [JavaScript Warning: "CSP WARN: Failed to parse unrecognized source 'unsafe-inline'"] 

< - 손실 된 CSS 태그 ->

05-07 19:31:13.892: ERROR/GeckoConsole(1397): [JavaScript Error: "Error: call to Function() blocked by CSP" {file: "app://788ceebd-a9b7-4a98-a8b0-1ff248e40f52/scripts/vendor/d10639ae.angular.js" line: 6337}] 
05-07 19:31:13.912: ERROR/GeckoConsole(1397): [JavaScript Warning: "CSP WARN: Directive eval script base restriction violated" {file: "app://788ceebd-a9b7-4a98-a8b0-1ff248e40f52/scripts/vendor/d10639ae.angular.js" line: 6337 column: 0 source: "call to eval() or related function blocked by CSP"}] 
+0

CSP는 또한 인라인 CSS 나 자바 스크립트를 허용하지 않습니다 게시물에 대한 링크는 다음과 같다. Eval은 물론 허용되지 않지만 CSP 모드에서는 각도가 eval()을 사용하지 않아야합니다. 인라인 CSS/js를 사용하지 않는 것이 최선의 방법인지 확인하십시오. –

+0

몇 가지 추가 정보. 필자는 ng-csp 지시어를 사용하거나 사용하지 않고 응용 프로그램을 배포하려고 시도했지만 Firefox OS 지시문을 사용하지 않으면 eval() 호출이 차단되었다고 명시 적으로 말합니다. 위의 경우 ng-csp를 사용하면 "CSP에 의해 차단 된 Function() 호출"오류가 발생합니다. 내 질문은 안전 모드에서조차도 각도는 기능을 사용하여 마술을합니다. – Ltmatos

답변

4

내가 관리했습니다 이 문제의 원인을 발견 할 수 있습니다. 외관상 Angular는 응용 프로그램의 $ rootscope에 와쳐를 만들려고하면 CSP 안전 모드 (ng-csp)에서도 Function 생성자를 호출합니다. Angular Google Groups에 이미 버그가있는 것으로 보아서 게시했습니다. Angular JS 라이브러리에서 수정을했고 Firefox OS 기기에서 작동하도록했습니다.

link

건배

관련 문제