عند الربط بصفحة على موقع إلكتروني آخر باستخدام السمة 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
إلى الصفحة الجديدة. اطّلِع على نوع الرابط "noreferrer".
يُرجى الاطّلاع على مشاركة مشاركة الموارد المشتركة المصدر بأمان للحصول على مزيد من المعلومات.