عند الربط بصفحة على موقع إلكتروني آخر باستخدام السمة target="_blank"، قد يعرّض ذلك موقعك الإلكتروني لمشاكل في الأداء والأمان:
- قد يتم تشغيل الصفحة الأخرى في العملية نفسها التي يتم فيها تشغيل صفحتك. إذا كانت الصفحة الأخرى تنفّذ الكثير من JavaScript، قد يتأثر أداء صفحتك.
- يمكن للصفحة الأخرى الوصول إلى عنصر
windowباستخدام السمةwindow.opener. وقد يسمح ذلك للصفحة الأخرى بإعادة توجيه صفحتك إلى عنوان URL ضار.
يمكنك تجنُّب هذه المشاكل من خلال إضافة rel="noopener" أو rel="noreferrer" إلى روابط target="_blank".
أسباب تعذُّر عملية تدقيق الوجهة من مصادر متعددة في Lighthouse
تضع Lighthouse علامات على الروابط غير الآمنة التي تنقل إلى وجهات مشتركة المصدر:
تتّبع 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إلى الصفحة الجديدة.
يمكنك الاطّلاع على مشاركة المراجع مع نطاقات خارجية بأمان للحصول على مزيد من المعلومات.