هنگامی که با استفاده از ویژگی target="_blank" به صفحه ای در سایت دیگری پیوند می دهید، می توانید سایت خود را در معرض مشکلات عملکرد و امنیتی قرار دهید:
- صفحه دیگر ممکن است با همان فرآیند صفحه شما اجرا شود. اگر صفحه دیگر جاوا اسکریپت زیادی اجرا می کند، عملکرد صفحه شما ممکن است آسیب ببیند.
- صفحه دیگر می تواند با ویژگی
window.openerبه شیwindowشما دسترسی داشته باشد. این ممکن است به صفحه دیگر اجازه دهد صفحه شما را به یک URL مخرب هدایت کند.
افزودن rel="noopener" یا rel="noreferrer" به پیوندهای target="_blank" خود از این مشکلات جلوگیری می کند.
چگونه ممیزی مقصد متقاطع فانوس دریایی شکست می خورد
فانوس دریایی پیوندهای ناامن را به مقصدهای متقاطع نشان می دهد:

Lighthouse از فرآیند زیر برای شناسایی لینک ها به عنوان ناامن استفاده می کند:
- همه تگهای
<a>را که حاوی ویژگیtarget="_blank"هستند، اما ویژگیهایrel="noopener"یاrel="noreferrer"را جمع آوری کنید. - پیوندهای همان میزبان را فیلتر کنید.
از آنجایی که Lighthouse لینکهای همان میزبان را فیلتر میکند، اگر روی یک سایت بزرگ کار میکنید، باید از یک مورد حاشیهای آگاه باشید: اگر یک صفحه حاوی یک پیوند target="_blank" به صفحه دیگری در سایت شما بدون استفاده از rel="noopener" ، مفاهیم عملکرد این ممیزی همچنان اعمال می شود. با این حال، شما این پیوندها را در نتایج Lighthouse خود نخواهید دید.
چگونه می توان عملکرد سایت خود را بهبود بخشید و از آسیب پذیری های امنیتی جلوگیری کرد
rel="noopener" یا rel="noreferrer" را به هر پیوند شناسایی شده در گزارش Lighthouse خود اضافه کنید. به طور کلی، وقتی 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به صفحه جدید نیز جلوگیری می کند. نوع پیوند "noreferrer" را ببینید.
برای اطلاعات بیشتر به پست ایمن منابع متقاطع به اشتراک بگذارید .