개인 정보 보호 및 보안을 강화하기 위해 이제 서드 파티 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
가 발생합니다. 이 제한사항은 사용자의 개인 정보 보호 및 보안을 개선하고 악의적인 행위자(예: 악성 광고)가 예기치 않은 공유 작업을 트리거하는 것을 방지하기 위해 모든 브라우저 공급업체에서 합의한 사항입니다.