כשמקשרים לדף באתר אחר באמצעות המאפיין 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".
שיתוף בטוח של משאבים ממקורות שונים כדי לקבל מידע נוסף.