2017-10-23 7 views
0

CSP 설정에 문제가 있습니다. 내 페이지에 애니메이션을 구현하기 위해 snap.svg.js 라이브러리를 연결했습니다. 이 라이브러리는 제 애니메이션이 인라인 스타일을 많이 갖도록 만듭니다 (약 2000+ 내 SVG에있는 모든 사람들에게). 나는이 같은 'unsafe-inline'을 지정하지 않으면 그래서 :
... "style-src 'unsafe-inline'; "
...

, 나는 콘솔의 위반을 많이해야합니다. 하지만 보안면에서 인라인 스타일을 허용하고 싶지는 않습니다. snap.svg.js lib 형식으로 생성 된 인라인 스타일 만 표시하려면 어떻게합니까?
내 CSP (테스트 용으로 만 보고서) : 다른 스크립트에 의해로드 된 스크립트에 대한 신뢰를 전파 할 수 CSP 3의 비표와콘텐츠 보안 정책 충돌

$csp = "Content-Security-Policy-Report-Only: " 
    . "default-src 'self' http://gc.kis.v2.scr.kaspersky-labs.com ; " 

    . "font-src 'self' https://fonts.googleapis.com https://fonts.gstatic.com data: ; " 

    . "script-src 'self' 'sha256-4B8QbxkufkPFIEFoveWSoiyIpMLitEc/N9oopV9wrU4=' 'sha256-KoZvlNi6WIlva5SMPsgkZKuz3pwSCUhpugmi7saPqak=' ; " 

    . "style-src 'self' https://fonts.googleapis.com ; " 

    . "img-src 'self' http://1.gravatar.com ; "; 
header($csp); 

답변

0

,하지만 난 스크립트 비표가 어떤 방법을 가지고 있다고 생각하지 않습니다 스타일으로 전파하십시오. 당신이해야 할 것이 무엇

는 것 중 하나

  1. 알터 라이브러리 (EEK)가 추가 모든 인라인 스타일에 넌스를 추가 할 수 있습니다. 또한 CSP와 생성 된 페이지 모두에 대해 일의를 수행해야합니다. 이것은 최상의 솔루션이지만 구현하기가 가장 어렵습니다.
  2. 각 인라인 스타일에 SHA 해시를 사용하십시오. 이것은 지저분하고 비실용적이지만, 예상 할 수있는 몇 가지 인라인 스타일 만 있으면 전체 규모의 구현을 수행하거나 보안을 약화시키지 않고 도망 갈 수 있습니다.
  3. 그냥 unsafe-inline을 사용하십시오. Javascript 및 기타 액티브 컨텐트가 잠겨있는 한 CSP를 전혀 사용하지 않는 것보다 분명히 이상적이지는 않습니다. 작풍은 더 위험한 것의 한개이다 그러나 script-src 및 아마 object-src의 위험에 초를 붙들 지 않는다.

귀하의 상황에 가장 적합한 것은? 먼저 SHA 해시 방법을 시도해보고 정확히 필요한 해시가 얼마나 많은지 확인하십시오. 그들이 날아 다니는 동안 완전히 만들어졌고 수십개가 있다면 아마 잘 풀릴 수 없을 것입니다.

대부분의 제 3 자 라이브러리는 CSP를 염두에두고 제작되지 않았으며이를 사용하기가 어렵거나 불가능합니다. 라이브러리/CDN/등이 CSP를 지원할 것으로 예상되기 전까지 우리는 계속 두통을 앓고 있습니다.

관련 문제