الزامات جدید برای Web Share API در iframe های شخص ثالث

برای بهبود حریم خصوصی و امنیت، تماس‌های Web Share API در iframe‌های شخص ثالث اکنون باید به صراحت مجاز باشند.

این مقاله یک تغییر احتمالی در Web Share API را پوشش می‌دهد. این تغییر در حال حاضر در فایرفاکس است، از نسخه 110 در کروم قرار خواهد گرفت و انتظار می‌رود به زودی در سافاری قرار گیرد.

Web Share API به شما امکان می دهد متن، URL یا فایل ها را به اشتراک بگذارید. در ساده ترین شکل، کد اشتراک چیزی شبیه به این است:

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

اگر یک اقدام اشتراک‌گذاری باید در یک iframe شخص ثالث انجام شود، یک تغییر مشخصات اخیر از شما می‌خواهد که صریحاً اجازه دهید این عملیات. این کار را با افزودن یک ویژگی allow به تگ <iframe> با مقدار web-share انجام دهید. این به مرورگر می‌گوید که سایت جاسازی به 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 ببینید و کد منبع را مشاهده کنید. عدم ارائه ویژگی منجر به NotAllowedError با پیام Failed to execute 'share' on 'Navigator': Permission denied . همه فروشندگان مرورگر با این محدودیت موافقت کردند تا حریم خصوصی و امنیت کاربران را بهبود بخشند و از عوامل بد، به عنوان مثال، تبلیغات سوء استفاده‌کننده، از ایجاد اقدامات اشتراک‌گذاری غیرمنتظره جلوگیری کنند.