12

나는 콘텐츠 보안 정책이 :이 CSP 오류가 발생Google 웹 로그 분석 콘텐츠 보안 정책

<script src="/javascript/ga.js" async></script> 

: 내가 비동기 스크립트에 인라인 GA 코드를 넣어 가지고

내 페이지에서
default-src 'none'; 
style-src 'self'; 
script-src 'self' https://www.google-analytics.com; 
img-src 'self' https://www.google-analytics.com; 
connect-src 'self'; 

:

Refused to load the script 'data:application/javascript;base64,KGZ1bmN0aW9uKCkgewoJLy8gaHR0cHM6Ly9kZXZl…07Cgl9OwoJZ2EucmVtb3ZlID0gbm9vcGZuOwoJd2luZG93W2dhTmFtZV0gPSBnYTsKfSkoKTs=' because it violates the following Content Security Policy directive: "script-src 'self' https://www.google-analytics.com ".

JS 파일에서이 스크립트를 제공 할 수있는 방법이 있습니까? 그렇다면 어떻게 CSP를 변경해야합니까?

+0

이 내용은 다음과 유사 할 수 있습니다. http://stackoverflow.com/questions/41118558/what-is-the-correct-content-security-policy-for-google-analytics? –

+0

@ 에케 저는 유감스럽게도 답변을 얻기 위해이 질문에 현상금을 쏟아 부어 도움이되었다고 생각하지 않습니다. –

+0

요청의 헤더를 기록하지만 URI는 기록하지 않습니다. 이걸 기록 할 수 있니? 네트워크 탭을보고 – gr3g

답변

6

Michele Spagnuolo's answer 및 upvote를 참조하십시오.

은 uBlock 기원에 의해 발생하고 data URL이 허용 목록에 포함되지 않기 때문에 그것은이다 :

script-src data:; 

신뢰할 수없는 데이터가 어디에서 URL을 표기하고 취약한 응용 프로그램을 떠날 수이로이 일을 아무 문제가 없습니다 응용 프로그램 또는 공격자가 이러한 URL을 사용하는 태그를 삽입 할 수 있는지 확인하십시오. 이것은 물론 주입 지점과 허용되는 문자에 달려 있습니다.

물론 사용자 입력 URL (예 : http:// 또는 https://으로 시작해야 함)을 허용 목록에 추가해야합니다. 단, CSP는 심층 방어책이므로 너무 약하게하고 싶지는 않을 것입니다.

결론은 CSP 보고서 또는 오류가 발생하지 않도록하기 위해 이렇게하면 CSP가 약화되고 있다는 것입니다.

+0

이것은 정책을 XSS 완화에 전혀 쓸모 없게 만듭니다. 왜냐하면 공격자는 단지 다음을 주입 할 수 있기 때문입니다 :''''Javascript를 실행하십시오. –

+0

거기에 CSP의 결함이 있습니다. 게시물 개발과 문제를 통합하기가 너무 어려우므로 써드 파티 애드 인이 이와 같이 설계되어 구현시 CSP가 희석됩니다. – SilverlightFox

+0

Ps. 왜 downvote? 나는 그것이 정책을 약화 시킨다는 것을 이미 언급했다. 애널리틱스 작업과 그렇지 않은 작업의 차이점은 무엇입니까? – SilverlightFox

6

Google 웹 로그 분석은 CSP와 호환됩니다. base64로 인코딩 된 data: BLOB OP가 uBlock Origin 확장에 의해 삽입되고 있습니다. 확인하려면 시크릿 모드를 사용 중지하거나 시크릿 모드로 시도해보세요. IIRC의 경우 확장 기능의 "실험/비제동"설정 때문입니다.

data:을 허용 목록에 넣으려는 유혹에 빠지십시오. script-src. 공격자가 자바를 실행하기 위해 <script src="data:text/javascript,alert(1)"></script>을 주입 할 수 있기 때문에 XSS 완화에는 정책이 완전히 쓸모 없게됩니다.