2016-12-08 1 views
7

hash-source을 인식하지 못하는 브라우저에서 script-src: hash-source을 사용하는 경우 브라우저가 script-src: 또는 모두를 무시합니까? 또는 hash-source 부분 만 무시합니까?콘텐츠 보안 정책은 앞으로 호환 가능합니까?

더 일반적으로 브라우저는 포워드 호환 방식으로 CSP를 구현합니까?

답변

2

이전 버전과의 호환성에 대해 언급 한 oreoshake는 정확합니다. 일치 section 6.6.2.2 of the CSP draft standard에서 설명 된 요소를 판정하는 방법 : hash-source 또는 nonce-source의 존재는 unsafe-inline을 따르는 사용자 에이전트에 의해 무시된다 :이 키워드를 포함하는 경우

소스리스트가 특정 유형의 모든 인라인 동작을 허용

[...]

표현이 비표 소스 또는 해시 소스 문법 일치하는 경우, 반환 "다음의 알고리즘에 설명 된대로 -source 표현 '안전하지 않은 인라인'는 그 표현을 대체하지 않습니다 허용하지 않는다". 공간에 분할 소스리스트에 의해 반환 된 각 토큰

, 토큰 소스 표현 문법과 일치하는 경우에 토큰을 추가 다음

또한, CSP 2 parsing a source list with unknown tokens 프로세스를 지정 소스 식 세트.

그렇지 않으면 무시해야합니다. 따라서 저자들은 최소한 일정 수준의 순방향 호환성을 염두에 두었습니다.

2

해시 소스 요소를 인식하지 못하는 브라우저는 콘솔에서 경고를 내 보일 수 있지만 그렇지 않을 수도 있습니다. 권장 방법은 사용자 에이전트 스니핑을 사용하여 지원을 감지하거나 'unsafe-inline'에 해시 소스 값을 모두 전송하는 것입니다.

해시 소스를 이해하는 사용자 에이전트는 'unsafe-inline'을 무시하고 'unsafe-inline'으로 폴백하지 않는 사용자 에이전트는 무시합니다. 따라서 이면과 호환됩니다.

+0

답변 해 주셔서 감사합니다. 나는 CSP가 하위 호환성을 가지고 있다는 사실을 알고 있지만 앞으로 호환성이 있는지 또는 브라우저에 알려지지 않은 지시어를 사용하면 해당 브라우저에 대해 CSP 규칙을 완전히 위반하는지 궁금합니다. –

관련 문제