programing

HTML이 아닌 요청에 대한 응답으로 컨텐츠 보안 정책을 설정한다는 것은 무엇을 의미합니까?

starjava 2023. 10. 24. 20:04
반응형

HTML이 아닌 요청에 대한 응답으로 컨텐츠 보안 정책을 설정한다는 것은 무엇을 의미합니까?

사이트의 메인 페이지에 대해 CSP 헤더를 설정할 수 있음을 알고 있습니다.https://example.com, 스크립트 및 기타 리소스를 로드할 수 있는 위치를 제한합니다.그러나 메인 페이지에 CSP가 없는 경우 브라우저는 후속 요청에 대한 정책을 어떻게 처리합니까?

다음은 두 가지 예입니다.

  1. 찾아보기https://example.comHTML을 가져오십시오(CSP 헤더 없음).
  2. HTML에는 다음의 스크립트가 포함됩니다.https://example.com/script.js[*]
  3. 이 스크립트는 GET을 실행하여 API로부터 일부 데이터를 요청합니다.https://api.example.com[*]
  4. 그러면 같은 스크립트가 같은 도메인으로 웹소켓을 엽니다.https://api.example.com
  5. 그러면 동일한 스크립트가 또 다른 요청을 하고, 외부에 게시합니다.https://api.analytics.com

[*] 2단계와 3단계에서 script.js 또는 JSON 응답이 restrictve CSP와 함께 돌아온다면 어떻게 될까요?Content-Security-Policy: default-src 'none'? 다운스트림 요청사항이 변경됩니까?브라우저가 스크립트의 요청을 방지하기 위해 어떤 조치를 취합니까?아니면 원래 페이지 로드에 CSP가 포함되지 않았기 때문에 허용됩니까?

감사합니다!

현재 CSP 사양(버전 2)에는 다음과 같이 나와 있습니다(emphasis mine).

3.6. 정책 적용 가능성

정책은 보호된 리소스와 연결되며 해당 리소스에 대해 적용되거나 모니터링됩니다.를 들어 스크립트, 이미지 또는 스타일시트를 문서에 포함할 때 리소스가 새 실행 컨텍스트를 만들지 않으면 해당 리소스와 함께 전송된 정책은 효과 없이 삭제됩니다.실행은 포함된 컨텍스트의 정책 또는 정책에 따라 결정됩니다.

CSP는 다음과 같은 상위 수준의 문서, 내장된 객체만을 포함하는 새로운 실행 컨텍스트(즉, 웹 페이지)를 생성하는 리소스에만 적용됩니다.<iframe>s, 스크립트가 웹 작업자로 로드됩니다.리소스가 HTTP를 통해 제공되고 해당 리소스가 새 실행 컨텍스트를 생성하는 방식으로 사용되지 않으면 CSP는 영향을 미치지 않습니다.

따라서 스크립트는 해당 스크립트와 함께 제공되는지 여부에 관계없이 동일하게 동작합니다.Content-Security-Policy머리말

언급URL : https://stackoverflow.com/questions/37819249/what-does-it-mean-to-set-a-content-security-policy-on-response-to-a-non-html-req

반응형