8

Content-Security-Policy이 서버에 의해 반환 된 X-Frame-Options을 무시합니까? 아니면 여전히 X-Frame-Options입니까?X-Frame-Options에서 Content-Security-Policy는 어떻게 작동합니까?

내가 가지고 있다고 가정 : X-Frame-Options: DENY

    • 웹 사이트 http://a.comContent-Security-Policy: frame-src a.com

    의지 브라우저 하중이 프레임을 가진 웹 사이트 http://b.com를?

    불분명 함.
    한편, http://a.com은 프레이밍을 명시 적으로 거부합니다.
    한편, http://b.comhttp://a.com에 대한 프레이밍을 명시 적으로 허용합니다.

  • 답변

    1

    답변은 실제로 테스트하여 발견되었습니다.
    저는 두 개의 웹 사이트를 만들고 설명 된 상황을 재현했습니다.

    X-Frame-Options처럼 보이는 것이 기본입니다.
    대상 서버가 프레이밍을 거부하면 클라이언트 웹 사이트는 iframe에이 페이지를 표시 할 수 없습니다.이 값은 Content-Security-Policy입니다.

    그러나 설명서에서 확인한 사항이 없습니다.

    크롬 IE (54) 및 (11) ( child-src 의해 사용되지 않으며 대신 임) frame-src CSP directive

    13

    에서 테스트는 소스 페이지의 프레임에 이용 될 수 있는지를 판정한다.

    응답 헤더는 iframe에서 해당 페이지를 사용할 수있는 다른 페이지를 결정합니다.

    http://a.comX-Frame-Options: DENY은 프레임에 다른 페이지를 사용할 수 없음을 나타냅니다. http://b.com은 CSP에 어떤 내용이든 상관 없습니다 - 어떤 페이지도 프레임에 http://a.com을 사용할 수 없습니다.


    X-Frame-Options은 CSP와 교차하는 장소는 frame-ancestors directive 통해이다. CSP specificiation (강조 광산)에서 :

    이 지시어는 여러 사용자 에이전트가 구현 한 X-Frame-Options 헤더와 유사하다. 'none' 소스 표현식은 해당 헤더의 DENY, 'self' ~ SAMEORIGIN, 등과 대략 동일합니다. 입니다. 가장 큰 차이점은 많은 사용자 에이전트가 SAMEORIGIN을 구현하여 최상위 수준 인 문서 위치와 일치하는 것입니다. 이 지시문은 각 조상을 검사합니다. 상위 항목이 일치하지 않으면로드가 취소됩니다.[RFC7034]

    frame-ancestors 지시어는 X-Frame-Options 헤더를 쓸모 없게. 자원에 두 가지 정책이 모두있는 경우 frame-ancestors 정책을 적용하고 X-Frame-Options 정책을 무시해야합니다 (SHOULD). older question

    이 그 시간에 파이어 폭스에서 작동하지 않았다 표시 바라건대 지금은 상황이 바뀌었다.

    +0

    "frame-src CSP 지시문 (더 이상 사용되지 않으며 child-src로 대체 됨)"-이 명령문의 원본은 무엇입니까? – sapy

    +0

    https://www.w3.org/TR/CSP2/#directive-frame-src - "frame-src 지시문은 사용되지 않습니다. 중첩 된 탐색 컨텍스트를 제어하려는 작성자는 대신 child-src 지시문을 사용해야합니다." CSP3 - https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-src#Specifications 및 https : //에서 사용되지 않을 것으로 예상됩니다. www.w3.org/TR/CSP/#directive-child-src –

    +0

    예, 파이어 폭스는 그것을 존중하지 않았습니다. 지난 몇 달 전에 확인했지만, 지금은 예상대로 작동합니다. –

    1

    이것은 일반적으로 사실이 아닙니다. Chrome은 X-Frame-Options을 무시하지만 Safari 9 이하 버전에서는 CSP 프레임 조상을 무시합니다. Safari 10은 CSP 프레임 조상 지시어를 준수하지만 X 프레임 옵션 (지정된 경우)의 우선 순위를 지정합니다.

    관련 문제