پیوندها به مقصدهای متقاطع ناامن هستند

وقتی با استفاده از ویژگی target="_blank" به صفحه‌ای در سایت دیگری لینک می‌دهید، می‌توانید سایت خود را در معرض مشکلات عملکردی و امنیتی قرار دهید:

  • ممکن است صفحه دیگر با همان فرآیندی که صفحه شما اجرا می‌شود، اجرا شود. اگر صفحه دیگر جاوا اسکریپت زیادی اجرا کند، ممکن است عملکرد صفحه شما دچار مشکل شود.
  • صفحه دیگر می‌تواند با استفاده از ویژگی window.opener به شیء window شما دسترسی پیدا کند. این ممکن است به صفحه دیگر اجازه دهد صفحه شما را به یک URL مخرب هدایت کند.

اضافه کردن rel="noopener" یا rel="noreferrer" به لینک‌های target="_blank" از این مشکلات جلوگیری می‌کند.

چگونه ممیزی مقصد بین مبدائی لایت‌هاوس با شکست مواجه می‌شود

لایت‌هاوس لینک‌های ناامن به مقاصد بین مبدا را علامت‌گذاری می‌کند:

ممیزی Lighthouse که لینک‌های ناامن به مقاصد بین مبدا را نشان می‌دهد.

لایت‌هاوس از فرآیند زیر برای شناسایی لینک‌های ناامن استفاده می‌کند:

  1. تمام تگ‌های <a> که شامل ویژگی target="_blank" هستند اما ویژگی‌های rel="noopener" یا rel="noreferrer" را ندارند، جمع‌آوری کنید.
  2. هرگونه لینک با میزبان یکسان را فیلتر کنید.

از آنجایی که Lighthouse لینک‌های با میزبان یکسان را فیلتر می‌کند، یک مورد خاص وجود دارد که هنگام کار بر روی یک سایت بزرگ باید مراقب آن باشید. اگر یک صفحه حاوی لینک target="_blank" به صفحه دیگری در سایت شما بدون استفاده از rel="noopener" باشد، پیامدهای عملکردی این ممیزی همچنان اعمال می‌شود. با این حال، شما این لینک‌ها را در نتایج Lighthouse خود نخواهید دید.

بهبود عملکرد سایت و جلوگیری از آسیب‌پذیری‌های امنیتی

به هر لینکی که در گزارش Lighthouse خود شناسایی کرده‌اید rel="noopener" " یا rel=" rel="noreferrer" اضافه کنید. به طور کلی، وقتی از target="_blank" استفاده می‌کنید، همیشه rel="noopener" یا rel="noreferrer" اضافه کنید:

<a href="https://examplepetstore.com" target="_blank" rel="noopener">   Example Pet Store </a> 
  • rel="noopener" مانع از دسترسی صفحه جدید به ویژگی window.opener می‌شود و تضمین می‌کند که در یک فرآیند جداگانه اجرا شود.
  • rel="noreferrer" نیز همین اثر را دارد و همچنین از ارسال هدر Referer به صفحه جدید جلوگیری می‌کند.

برای اطلاعات بیشتر ، بخش «اشتراک‌گذاری ایمن منابع بین‌منبعی» را مطالعه کنید.

منابع