서드 파티 iframe의 Web Share API에 관한 새로운 요구사항

개인 정보 보호 및 보안을 강화하기 위해 이제 서드 파티 iframe의 Web Share API 호출을 명시적으로 허용해야 합니다.

이 도움말에서는 Web Share API의 잠재적 브레이킹 체인지를 설명합니다. 이 변경사항은 이미 Firefox에 적용되었으며 Chrome 110부터 적용되고 곧 Safari에도 적용될 예정입니다.

Web Share API를 사용하면 텍스트, URL 또는 파일을 공유할 수 있습니다. 가장 간단한 형태의 공유 코드는 다음과 같습니다.

try {
  await navigator.share({
    title: 'Title',
    text: 'Text',
    url: location.href,
  });
} catch (err) {
  console.error(`${err.name}: ${err.message}`);
}

공유 작업을 서드 파티 iframe에서 실행해야 하는 경우 최근 사양 변경에 따라 작업을 명시적으로 허용해야 합니다. 값이 web-share<iframe> 태그에 allow 속성을 추가하면 됩니다. 이렇게 하면 삽입 사이트에서 삽입된 서드 파티 iframe이 공유 작업을 트리거할 수 있음을 브라우저에 알립니다.

<!DOCTYPE html>
<html lang="en">
  <body>
    <h1>Web Share in third-party iframes</h1>
    <!-- The embedding page is hosted on https://example.com/index.html. -->
    <iframe allow="web-share" src="https://third-party.example.com/iframe.html"></iframe>
  </body>
</html>

Glitch의 데모에서 이를 실제로 확인하고 소스 코드를 볼 수 있습니다. 이 속성을 제공하지 않으면 Failed to execute 'share' on 'Navigator': Permission denied 메시지가 포함된 NotAllowedError가 발생합니다. 이 제한사항은 사용자의 개인 정보 보호 및 보안을 개선하고 악의적인 행위자(예: 악성 광고)가 예기치 않은 공유 작업을 트리거하는 것을 방지하기 위해 모든 브라우저 공급업체에서 합의한 사항입니다.