الروابط إلى وجهات مشتركة المصدر غير آمنة

عند الربط بصفحة على موقع إلكتروني آخر باستخدام السمة target="_blank"، يمكنك تعريض موقعك الإلكتروني لمشاكل الأداء والأمان:

  • قد يتم تشغيل الصفحة الأخرى في العملية نفسها مثل صفحتك. فإذا كانت الصفحة الأخرى تستخدم قدرًا كبيرًا من JavaScript، فقد يؤثر ذلك على أداء صفحتك.
  • يمكن للصفحة الأخرى الوصول إلى العنصر window باستخدام السمة window.opener. وقد يتيح ذلك للصفحة الأخرى إعادة توجيه صفحتك إلى عنوان URL ضار.

إنّ إضافة rel="noopener" أو rel="noreferrer" إلى روابط target="_blank" تؤدي إلى تجنُّب هذه المشاكل.

كيفية تعذُّر تدقيق الوجهة المتعددة المصادر في Lighthouse

تضع خدمة Lighthouse علامة على الروابط غير الآمنة للوجهات المشتركة المصدر:

تدقيق أداة Lighthouse تُظهر روابط غير آمنة لوجهات من مصادر متعددة

تستخدم أداة Lighthouse العملية التالية لتحديد الروابط غير الآمنة:

  1. اجمع كل علامات <a> التي تحتوي على السمة target="_blank" وليس على السمتَين rel="noopener" أو rel="noreferrer".
  2. استبعاد أي روابط للمضيف نفسه

ولأنّ أداة 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".

يُرجى الاطّلاع على مشاركة مشاركة الموارد المشتركة المصدر بأمان للحصول على مزيد من المعلومات.

المراجِع