혼합 콘텐츠

W3C 후보 권고안 초안,

이 문서에 대한 자세한 정보
이 버전:
https://www.w3.org/TR/2023/CRD-mixed-content-20230223/
최신 공개 버전:
https://www.w3.org/TR/mixed-content/
편집자 초안:
https://w3c.github.io/webappsec-mixed-content/
이전 버전:
히스토리:
https://www.w3.org/standards/history/mixed-content
피드백:
public-webappsec@w3.org 제목에 “[mixed-content] … 메시지 주제 …” 포함 (아카이브)
GitHub:
이슈 제출 (오픈 이슈)
구현 보고서:
https://wpt.fyi/results/mixed-content
편집자:
(Google Inc.)
(Google Inc.)
(Google Inc.)
참여:
이슈 제출 (오픈 이슈)

개요

이 명세서는 사용자 에이전트가 암호화되고 인증된 문서의 맥락에서 암호화되지 않았거나 인증되지 않은 연결을 통해 콘텐츠를 가져오는 방법을 설명합니다.

이 문서의 상태

이 섹션은 문서가 발행된 시점에서의 상태를 설명합니다. 최신 W3C 발행 목록과 이 기술 보고서의 최신 개정판은 W3C 기술 보고서 인덱스 https://www.w3.org/TR/에서 확인할 수 있습니다.

이 문서는 웹 애플리케이션 보안 워킹 그룹에서 권고안 트랙을 사용하여 후보 권고안 초안으로 발행되었습니다. 이 문서는 W3C 권고안이 되는 것을 목표로 합니다.

(아카이브) 공개 메일링 리스트 public-webappsec@w3.org (지침 참조) 는 이 명세서 논의에 권장되는 경로입니다. 이메일을 보낼 때, 제목에 “mixed-content”를 포함해 주세요, 예시: “[mixed-content] …의견 요약…

후보 권고안으로 발행되었다고 해서 W3C 및 회원들의 지지를 의미하는 것은 아닙니다. 후보 권고안 초안은 이전 후보 권고안에서 워킹 그룹이 이후 스냅샷에서 포함하고자 하는 변경사항을 통합합니다. 이 문서는 초안 문서이며 언제든지 업데이트, 교체 또는 폐기될 수 있습니다. 이 문서를 진행 중인 작업 외의 것으로 인용하는 것은 부적절합니다.

이 문서가 제안된 권고안 단계로 진입하기 위한 기준은 최소 두 개의 독립적이고 상호운용 가능한 사용자 에이전트가 명세의 모든 기능을 구현하는 것이며, 워킹 그룹에서 개발된 테스트 스위트를 통과함으로써 결정됩니다. 워킹 그룹은 진행 상황을 추적하기 위한 구현 보고서를 준비할 것입니다.

이 문서는 W3C 특허 정책에 따라 운영하는 그룹에서 작성되었습니다. W3C는 그룹의 결과물과 관련하여 제출된 공개 특허 공개 목록을 관리합니다; 해당 페이지에는 특허 공개를 위한 지침도 포함되어 있습니다. 특정 특허에 대해 필수적 청구가 있다고 믿는 개인은 W3C 특허 정책 6장에 따라 정보를 공개해야 합니다.

이 문서는 2021년 11월 2일 W3C 프로세스 문서에 의해 관리됩니다.

1. 소개

이 절은 규범적인 내용이 아닙니다.

사용자가 보안 채널(예: HTTPS)을 통해 example.com에서 웹페이지를 성공적으로 로드할 때, 사용자 에이전트와 example.com 사이의 데이터가 중간에 있는 어떤 엔티티도 엿보거나 변조하지 않았다는 보장이 제공됩니다. 그러나 웹페이지가 스크립트나 이미지를 보안되지 않은 연결로 로드하면 이 보장은 약화됩니다. 예를 들어, 보안되지 않게 로드된 스크립트는 공격자가 사용자를 대신하여 데이터를 읽거나 수정할 수 있게 합니다. 보안되지 않게 로드된 이미지는 공격자가 사용자에게 잘못된 정보를 전달(예: 조작된 주식 차트), 클라이언트 사이드 상태 변경(예: 쿠키 설정), 또는 사용자가 의도하지 않은 행동을 하도록 유도(예: 버튼의 레이블 변경)할 수 있습니다. 이러한 요청을 혼합 콘텐츠라고 합니다.

이 명세서는 사용자 에이전트가 특정 유형의 혼합 콘텐츠를 차단하고, 일부 맥락에서 더 엄격하게 동작함으로써 이러한 위험을 완화하는 방법을 자세히 설명합니다.

그러나 이 명세서의 이전 버전들은 사용자의 데이터의 기밀성과 무결성을 완전히 보호하지 못했습니다. 이미지, 오디오, 비디오 등과 같이 보안되지 않은 콘텐츠는 현재도 보안 컨텍스트에서 기본적으로 로드될 수 있습니다. 심지어 보안 페이지가 사용자 에이전트의 샌드박스를 완전히 벗어나는 보안되지 않은 다운로드를 시작할 수도 있습니다.

또한 사용자는 혼합 콘텐츠가 로드될 때 명확한 보안 표시를 받지 못합니다. 웹페이지가 혼합 콘텐츠를 로드할 때 브라우저는 "중간" 수준의 보안 표시(예: 자물쇠 아이콘 제거 등)를 보여 주는데, 이는 사용자가 해당 페이지를 신뢰해야 하는지 명확하게 알려주지 않습니다. 이 UX는 개발자가 혼합 콘텐츠를 피하도록 충분한 동기가 되지 못했으며, 여전히 많은 웹페이지가 혼합 콘텐츠를 로드하고 있습니다. 모든 혼합 콘텐츠를 차단하는 것이 사용자에게 더 간단한 사고 모델(즉, 웹페이지가 보안 전송으로 로드되었는지 여부만 확인하면 됨)을 제공하고, 개발자가 필수 혼합 콘텐츠를 안전하게 로드하도록 유도할 수 있습니다.

그래서 이 명세서는 사용자에게 더 나은 보안 및 개인정보 보호 보장, 더 나은 보안 UX를 제공하면서도 파손을 최소화하도록 업데이트되었습니다. 브라우저가 모든 혼합 콘텐츠를 엄격하게 차단하도록 단순히 권고하는 대신, 이 명세서는 혼합 콘텐츠 자동 업그레이드를 권고합니다:

자동 업그레이드는 보안 웹페이지에서 보안되지 않은 리소스 로드를 방지하면서, 개발자가 파손을 방지하기 위해 추가로 해야 할 작업을 최소화합니다.

이 명세서는 현재 기본적으로 차단되지 않은 혼합 콘텐츠 하위 리소스 유형만 자동 업그레이드를 권장하며, 이미 차단되고 있는 콘텐츠 유형은 자동 업그레이드를 권장하지 않습니다. 이는 웹에서 가시적인 변화를 최소화하기 위한 것으로, 기본적으로 모든 혼합 콘텐츠를 차단하는 목표를 진전시킬 수 있을 때만 업그레이드하도록 합니다.

이 명세서는 또한 혼합 다운로드라는 개념을 명확히 도입합니다. 혼합 다운로드란, 보안 컨텍스트에서 시작되었지만 보안되지 않은 연결로 다운로드되는 리소스를 사용자 에이전트가 다운로드로 처리하는 경우를 뜻합니다. 사용자 에이전트는 혼합 다운로드를 차단해야 하며, 이는 실행 파일의 경우 사용자 에이전트의 샌드박스를 벗어나거나, 민감한 정보(예: 은행 명세서)를 포함할 수 있기 때문입니다. 특히 사용자 에이전트가 보안 페이지에 있다는 표시를 하면서 혼합 다운로드를 시작 및 완료하는 것이 매우 오해를 불러일으킬 수 있습니다.

2. 핵심 개념 및 용어

혼합 콘텐츠
requestURL잠재적으로 신뢰할 수 있는 URL이 아니고, 해당 리소스를 로드하는 컨텍스트가 혼합 보안 컨텍스트를 금지하면 혼합 콘텐츠입니다(후자의 규범적 정의는 § 4.3 settings가 혼합 보안 컨텍스트를 금지하는가? 참조).

response인증되지 않은 응답이고, 해당 리소스를 로드하는 컨텍스트가 혼합 보안 컨텍스트를 금지하면 혼합 콘텐츠입니다.

혼합 콘텐츠를 제한하는 컨텍스트 내에서(https://secure.example.com/ 등):
  1. 스크립트 http://example.com/script.js에 대한 요청은 혼합 콘텐츠입니다. 스크립트 요청차단 가능이므로, 사용자 에이전트는 네트워크 오류를 반환하고 리소스를 로드하지 않습니다.

  2. 이미지 http://example.com/image.png에 대한 요청은 혼합 콘텐츠입니다. 이미지 요청업그레이드 가능이므로, 사용자 에이전트가 URL을 https://example.com/image.png으로 재작성할 수도 있고, 그렇지 않으면 로드를 차단합니다.

참고: "혼합 콘텐츠"는 원래 섹션 5.3에서 [WSC-UI]에 정의되었습니다. 이 문서는 해당 초기 정의를 업데이트합니다.

참고: [XML]에도 관련 없는 "혼합 콘텐츠" 개념이 정의되어 있습니다. 용어가 보안 맥락에서 사용자 에이전트에 10년 넘게 널리 쓰이고 있기 때문에 혼동 위험은 실질적으로 낮습니다.

인증되지 않은 응답
a posteriori 관점에서, response(response)의 URL잠재적으로 신뢰할 수 있는 URL이 아니라면 인증되지 않은 응답입니다.
임베딩 문서
Document A가 주어졌을 때, A브라우징 컨텍스트컨테이너 문서임베딩 문서입니다 [HTML].
혼합 다운로드
혼합 다운로드란, 보안 컨텍스트에서 시작되었지만 보안되지 않은 연결로 다운로드되는 리소스를 사용자 에이전트가 다운로드로 처리하는 경우를 의미합니다.

a priori 인증된 URL잠재적으로 신뢰할 수 있는 URL과 동일합니다 [SECURE-CONTEXTS].

3. 콘텐츠 범주

이상적인 세상에서는 모든 사용자 에이전트가 예외 없이 모든 혼합 콘텐츠를 차단해야 합니다. 그러나 오늘날 인터넷에서는 현실적으로 어렵기 때문에, 사용자 에이전트는 많은 웹사이트에서 경험 저하를 피하기 위해 더 세밀한 제한이 필요합니다.

이 점을 염두에 두고, 혼합 콘텐츠를 § 3.1 업그레이드 가능한 콘텐츠§ 3.2 차단 가능한 콘텐츠로 나눕니다.

3.1. 업그레이드 가능한 콘텐츠

업그레이드 가능한 콘텐츠는 이전 명세서 버전에서는 옵션 차단 가능으로 불리기도 했습니다.

혼합 콘텐츠는 해당 리소스 유형의 혼합 사용 빈도가 충분히 높고, 리소스 자체가 위험도가 낮을 경우 업그레이드 가능으로 분류됩니다. 이 범주에 속한다고 해서 안전하다는 의미는 아니며, 단지 다른 리소스 유형보다 치명적으로 위험하지 않다는 뜻입니다. 예를 들어 이미지와 아이콘은 애플리케이션 UI의 핵심 요소인 경우가 많으므로, 공격자가 "이메일 삭제"와 "답장" 아이콘을 뒤바꾼다면 사용자에게 실질적인 피해가 발생할 수 있습니다.

이 범주에는 다음이 포함됩니다:

이 범주는 § 4.4 요청을 혼합 콘텐츠로 차단해야 하는가?에서 CORS가 활성화된 모든 요청을 강제로 실패시키는 방식으로 더 제한됩니다. 예를 들어 <img crossorigin ...>로 로드된 혼합 콘텐츠 이미지는 차단됩니다. 이처럼 이 범주는 오직 너무 널리 사용되어 전체 차단이 어려운 콘텐츠 유형에만 해당하며, 워킹 그룹은 시간이 지나며 더 많은 차단 가능한 하위 집합을 만들고자 합니다.

3.2. 차단 가능한 콘텐츠

위에서 정의한 업그레이드 가능에 해당하지 않는 모든 혼합 콘텐츠는 차단 가능으로 간주됩니다. 대표적인 예로 스크립트, 플러그인 데이터, XMLHttpRequest로 요청된 데이터 등이 있습니다.

참고: 네비게이션 요청최상위 브라우징 컨텍스트를 대상으로 할 수 있으며, 이는 혼합 콘텐츠로 간주되지 않습니다. 자세한 내용은 § 4.4 요청을 혼합 콘텐츠로 차단해야 하는가?를 참조하세요.

참고: 플러그인을 대신해 이루어진 요청도 차단 가능입니다. 단, 사용자 에이전트가 항상 이러한 요청을 중재할 수 있는 것은 아닙니다. 예를 들어 NPAPI 플러그인은 직접 네트워크 접근이 가능하며, 일반적으로 사용자 에이전트를 완전히 우회할 수 있습니다. 사용자 에이전트는 가능한 경우 이러한 요청을 차단하는 것이 좋으며, 플러그인 벤더도 본 문서에서 설명한 위험을 줄이기 위해 혼합 콘텐츠 체크를 구현하는 것이 좋습니다.

4. 알고리즘

4.1. 혼합 콘텐츠 request를 적절할 경우 신뢰할 수 있는 URL로 업그레이드하기

참고: Fetch 명세는 이 알고리즘에 연결되어 업그레이드 가능한 혼합 콘텐츠를 HTTPS로 업그레이드합니다.

Request request가 주어졌을 때, 업그레이드 가능한 혼합 콘텐츠로 간주되면 다음 알고리즘에 따라 URL을 재작성합니다:

  1. 다음 조건 중 하나라도 충족하면 request를 수정하지 않고 반환합니다:
    1. requestURL신뢰할 수 있는 URL이다.
    2. requestURLhostIP 주소이다.
    3. § 4.3 settings가 혼합 보안 컨텍스트를 금지하는가?requestclient에 적용했을 때 "혼합 보안 컨텍스트를 금지하지 않음"을 반환한다.
    4. requestdestination이 "image", "audio", "video"가 아니다.
    5. requestdestination이 "image"이고 requestinitiator가 "imageset"이다.

      참고: 역사적 이유로 "imageset"은 업그레이드되지 않습니다. 과거에는 혼합 콘텐츠를 차단 가능/옵션 차단 가능으로 나누었으며, "imageset"은 차단 가능에 포함되어 업그레이드 정책에서도 제외되었습니다.

  2. requestURLschemehttp라면, requestURLschemehttps로 설정하고 반환합니다.

    참고: [url]에 따라 포트는 수정하지 않습니다. scheme이 http일 때 포트는 null로 설정되고, scheme이 https로 변경되면 443으로 해석됩니다.

4.2. 이전 알고리즘 수정

참고: 이 절은 이전 명세의 알고리즘을 수정하는 내용을 포함합니다. 옵션 차단 가능/차단 가능 혼합 콘텐츠의 구분을 무시하며, 모든 옵션 차단 가능 혼합 콘텐츠가 이제 자동 업그레이드됩니다.

4.3. settings가 혼합 보안 컨텍스트를 금지하는가?

문서와 워커 모두 환경 설정 객체를 가지며, 혼합 콘텐츠 제한 여부를 다음 알고리즘에 따라 판단할 수 있습니다. 이 알고리즘은 상황에 따라 "혼합 보안 컨텍스트를 금지함" 또는 "혼합 보안 컨텍스트를 금지하지 않음"을 반환합니다.

환경 설정 객체 (settings)가 주어졌을 때:

  1. settingsorigin신뢰할 수 있는 origin이라면, "혼합 보안 컨텍스트를 금지함"을 반환합니다.

  2. settingsglobal objectwindow라면:

    1. documentsettingsglobal object연관된 Document로 설정합니다.

    2. navigable navigable에 대해 document상위 navigables를 순회합니다:

      1. navigableactive documentorigin신뢰할 수 있는 origin이라면, "혼합 보안 컨텍스트를 금지함"을 반환합니다.

  3. "혼합 보안 컨텍스트를 금지하지 않음"을 반환합니다.

문서에 임베딩 문서가 있는 경우, 사용자 에이전트는 해당 문서뿐만 아니라 최상위 브라우징 컨텍스트도 확인해야 합니다. 최상위 컨텍스트가 리소스의 보안 상태에 대한 사용자의 기대를 결정하기 때문입니다. 예시:
http://a.comhttp://evil.com을 로드합니다. a.com이 보안 연결로 로드되지 않았으므로 비보안 요청이 허용됩니다.
https://a.comhttp://evil.com을 로드합니다. a.com이 보안 연결로 로드되어 비보안 요청은 차단됩니다.
http://a.comhttps://b.com을 프레임하여 http://evil.com을 로드합니다. 이 경우 b.com이 보안 연결로 로드되었으므로 evil.com에 대한 비보안 요청은 차단됩니다(a.com은 보안 연결이 아니어도).
https://a.comdata: URL을 프레임하여 http://evil.com을 로드합니다. 이 경우 a.com이 보안 연결로 로드되었으므로 evil.com에 대한 비보안 요청은 차단됩니다(프레임된 data: URL이 최상위 컨텍스트에서 로드되어도 혼합 콘텐츠를 차단하지 않더라도).

4.4. request의 fetch는 혼합 콘텐츠로 차단해야 하는가?

참고: Fetch 명세는 이 알고리즘에 연결되어 요청이 완전히 차단되어야 하는지(예: 차단 가능 콘텐츠 요청으로, 보안 연결로 로드되지 않을 것이라 가정되는 경우) 판단합니다.

Request request가 주어졌을 때, 사용자 에이전트는 다음 알고리즘에 따라 Request request가 진행되어야 하는지 결정합니다:

  1. 다음 조건 중 하나라도 충족하면 허용을 반환합니다:
    1. § 4.3 settings가 혼합 보안 컨텍스트를 금지하는가?requestclient에 적용했을 때 "혼합 보안 컨텍스트를 금지하지 않음"을 반환한다.
    2. requestURL신뢰할 수 있는 URL이다.
    3. 사용자 에이전트가 혼합 콘텐츠 허용하도록 지시받은 경우(§ 7.2 사용자 제어 참조).
    4. requestdestination이 "document"이고, requesttarget browsing context상위 브라우징 컨텍스트가 없다.

      참고: 최상위 네비게이션은 혼합 콘텐츠 검사에서 제외되지만, 사용자 에이전트는 비보안 폼 제출에 대해 혼합 콘텐츠 검사를 강제할 수 있습니다(§ 7.1 폼 제출 참조).

  2. 차단을 반환합니다.

4.5. request에 대한 response는 혼합 콘텐츠로 차단해야 하는가?

참고: 요청이 진행된 경우에도, 응답을 생성한 연결 상태(예: 차단 가능인데 인증되지 않은 응답인 경우 등)에 따라 응답을 차단할 수 있습니다. 또한 Service Worker가 차단 가능 요청에 대해 인증되지 않은 응답을 반환하지 않도록 해야 합니다. 이 알고리즘은 그 판단에 사용됩니다.

request requestresponse response가 주어졌을 때, 사용자 에이전트는 다음 알고리즘에 따라 어떤 응답을 반환할지 결정합니다:

  1. 다음 조건 중 하나라도 충족하면 허용을 반환합니다:
    1. § 4.3 settings가 혼합 보안 컨텍스트를 금지하는가?requestclient에 적용했을 때 혼합 보안 콘텐츠를 금지하지 않음을 반환한다.
    2. responseurl신뢰할 수 있는 URL이다.
    3. 사용자 에이전트가 혼합 콘텐츠 허용하도록 지시받은 경우(§ 7.2 사용자 제어 참조).
    4. requestdestination이 "document"이고, requesttarget browsing context상위 브라우징 컨텍스트가 없다.

      참고: 최상위 네비게이션은 혼합 콘텐츠 검사에서 제외되지만, 사용자 에이전트는 비보안 폼 제출에 대해 혼합 콘텐츠 검사를 강제할 수 있습니다(§ 7.1 폼 제출 참조).

  2. 차단을 반환합니다.

5. 통합

5.1. Fetch 수정

Fetch § 4.1 Main fetchrequest에 대해 3단계와 4단계 사이에 § 4.1 혼합 콘텐츠 요청을 적절할 경우 신뢰할 수 있는 URL로 업그레이드하기를 호출하도록 수정해야 합니다. 즉, 업그레이드 가능한 혼합 콘텐츠는 혼합 콘텐츠 차단을 적용하기 전에 HTTPS로 자동 업그레이드되어야 합니다.

5.2. HTML 수정

navigate 응답 처리는 아래와 같이 수정되어야 합니다. 3단계에서 sourceactive documentURL신뢰할 수 있는 URL이고, responseURL 목록 내에 신뢰할 수 있는 URL이 아닌 URL이 하나라도 있으면 다운로드를 중단하고 반환해야 합니다.

유사한 변경이 하이퍼링크 다운로드에도 적용되어야 합니다. 이 알고리즘에서 6.2단계는 subjectnode documentURL신뢰할 수 있는 URL이고, responseURL 목록 내에 신뢰할 수 있는 URL이 아닌 URL이 하나라도 있으면 반환(다운로드 중단)하도록 수정되어야 합니다(responserequest를 fetch한 결과임).

참고: 다운로드는 다른 혼합 콘텐츠 유형처럼 자동 업그레이드되지 않는데, 사용자 에이전트가 리소스를 요청하기 전에 그것이 다운로드될 것임을 항상 알 수 없기 때문입니다.

참고: 리소스는 사용자 에이전트가 비보안 연결을 근거로 다운로드를 중단할지 결정하기 전에 다운로드됩니다. 이로 인해 민감한 정보가 네트워크를 통해 전송될 수 있습니다. 이런 경우는 일반적으로 피할 수 없으며, 사용자 에이전트가 리소스가 다운로드된다는 사실을 최종 응답을 받을 때까지 알지 못할 수 있기 때문입니다. 하지만 리소스를 차단함으로써 사용자 에이전트는 웹사이트 운영자가 다운로드를 보안 연결로 제공하도록 유도할 수 있습니다.

6. 폐지 사항

6.1. 엄격한 혼합 콘텐츠 검사

이 명세서의 이전 버전에서는 block-all-mixed-content CSP 지시자를 정의했으나, 이제는 사용되지 않습니다. 왜냐하면 자동 업그레이드가 불가능한 모든 혼합 콘텐츠가 차단되기 때문입니다.

참고: upgrade-insecure-requests ([upgrade-insecure-requests]) 지시자는 개발자가 차단 가능한 콘텐츠를 업그레이드할 수 있도록 하므로 폐지되지 않았습니다. 이 명세서는 기본적으로 업그레이드 가능한 콘텐츠만 업그레이드합니다.

7. 보안 및 개인정보 보호 고려사항

전반적으로 업그레이드 가능한 혼합 콘텐츠 자동 업그레이드는 더 많은 사용자 트래픽을 네트워크 도청 및 변조로부터 보호하여 보안 및 개인정보 측면에서 긍정적인 효과를 기대할 수 있습니다.

개발자가 의도하지 않은 리소스를 로드함으로써 웹페이지에 보안이나 개인정보 문제가 새로 생길 위험이 있습니다. 예를 들어, 웹사이트가 http://www.example.com/image.jpg에서 평범한 이미지를 포함하는데, https://www.example.com/image.jpg가 추적 사이트로 리디렉션되는 경우입니다. 브라우저는 개발자와 사용자의 명시적 동의 없이 개인정보 문제를 유발할 수 있습니다. 하지만 이런 사례는 매우 드물 것으로 예상되며, 업그레이드 가능한 콘텐츠만 자동 업그레이드하고 차단 가능한 콘텐츠는 업그레이드하지 않음으로써 위험을 완화합니다. 차단 가능한 콘텐츠(예: 구식이거나 취약한 JavaScript 라이브러리)는 더 큰 위험을 초래할 수 있습니다.

7.1. 폼 제출

§ 4.3 settings가 혼합 보안 컨텍스트를 금지하는가?Documentrelevant settings object에 적용했을 때 혼합 콘텐츠를 제한함을 반환하면, 사용자 에이전트는 하나 이상의 form 요소에 action 속성 값이 신뢰할 수 있는 URL이 아닌 경우 사용자에게 경고할 수 있습니다.

사용자 에이전트는 form 요소의 action 속성 값이 신뢰할 수 있는 URL이 아닌 경우 제출 시 경고하고 제출을 중단할 수 있도록 사용자에게 허용할 수 있습니다. 만약 사용자 에이전트가 form 요소가 신뢰할 수 없는 URL로 제출될 때 경고한다면, 제출 시 form 요소의 action이 리디렉션되어 신뢰할 수 없는 URL로 노출될 때에도 경고하고 제출을 중단할 수 있도록 해야 합니다.

또한 사용자 에이전트는 이런 Document에서의 폼 제출을 차단 가능한 요청으로 처리할 수 있으며, 제출이 최상위 브라우징 컨텍스트에서 발생하더라도 마찬가지입니다.

7.2. 사용자 제어

사용자 에이전트는 개별 페이지에서 차단 가능한 혼합 콘텐츠 차단 결정을 사용자가 재정의할 수 있도록 허용할 수 있습니다.

참고: 실질적으로 사용자 에이전트는 이런 백도어를 제공하지 않을 수는 없습니다. 하지만 혼합 스크립트 허용은 특히 매우 위험한 선택이므로, 각 사용자 에이전트는 이런 선택을 제공할 때 반드시 위험성을 충분히 고려하고 안내해야 합니다(REALLY SHOULD NOT [RFC6919]).

사용자 에이전트는 개별 페이지에서 업그레이드 가능한 혼합 콘텐츠의 자동 업그레이드 결정을 사용자가 재정의할 수 있도록 허용할 수 있습니다.

사용자 에이전트가 제공하는 모든 제어는 보조 기술 사용자들을 위한 접근성 API를 통해서도 제공되어야 합니다.

8. 감사의 글

WebAppSec WG에서 받은 훌륭한 피드백 외에도 Chrome 보안팀은 이 명세서를 준비하는 데 큰 도움을 주었습니다. 특히 Chris Palmer, Chris Evans, Ryan Sleevi, Michal Zalewski, Ken Buchanan, Tom Sepez가 많은 초기 피드백을 주었습니다. Anne van Kesteren은 Fetch를 설명하고, 이 명세서 인터페이스를 정의하는 데 도움을 주었으며, Level 2 업데이트에 귀중한 피드백을 제공했습니다. Brian Smith는 명세서가 핵심에 집중하고 간결하며 일관성 있게 유지되도록 도왔습니다.

색인

이 명세서에서 정의된 용어

참조로 정의된 용어

참고 문헌

규범적 참고 문헌

[DOM]
Anne van Kesteren. DOM Standard. 현행 표준. URL: https://dom.spec.whatwg.org/
[FETCH]
Anne van Kesteren. Fetch Standard. 현행 표준. URL: https://fetch.spec.whatwg.org/
[HTML]
Anne van Kesteren; et al. HTML Standard. 현행 표준. URL: https://html.spec.whatwg.org/multipage/
[INFRA]
Anne van Kesteren; Domenic Denicola. Infra Standard. 현행 표준. URL: https://infra.spec.whatwg.org/
[SECURE-CONTEXTS]
Mike West. Secure Contexts. 2021년 9월 18일. CR. URL: https://www.w3.org/TR/secure-contexts/
[URL]
Anne van Kesteren. URL Standard. 현행 표준. URL: https://url.spec.whatwg.org/
[XHR]
Anne van Kesteren. XMLHttpRequest Standard. 현행 표준. URL: https://xhr.spec.whatwg.org/

참고용 참고 문헌

[CSS-BACKGROUNDS-3]
Bert Bos; Elika Etemad; Brad Kemper. CSS Backgrounds and Borders Module Level 3. 2023년 2월 14일. CR. URL: https://www.w3.org/TR/css-backgrounds-3/
[RFC6919]
R. Barnes; S. Kent; E. Rescorla. RFC에서 요구 수준을 나타내는 추가 주요 키워드. 2013년 4월 1일. 실험적. URL: https://www.rfc-editor.org/rfc/rfc6919
[UPGRADE-INSECURE-REQUESTS]
Mike West. Upgrade Insecure Requests. 2015년 10월 8일. CR. URL: https://www.w3.org/TR/upgrade-insecure-requests/
[WSC-UI]
Thomas Roessler; Anil Saldhana. 웹 보안 컨텍스트: 사용자 인터페이스 가이드라인. 2010년 8월 12일. REC. URL: https://www.w3.org/TR/wsc-ui/
[XML]
Tim Bray; et al. 확장성 마크업 언어(XML) 1.0 (5판). 2008년 11월 26일. REC. URL: https://www.w3.org/TR/xml/